在python中匹配精确字符串
如何匹配Python中可以动态捕获/忽略以下情况的精确字符串 如果我想从格式如下的文件中获取此IE输出“Y”中的值2:在python中匹配精确字符串,python,string,exact-match,Python,String,Exact Match,如何匹配Python中可以动态捕获/忽略以下情况的精确字符串 如果我想从格式如下的文件中获取此IE输出“Y”中的值2: ... --value1 X ---value2 Y ----value3 Z .... 如何在忽略前面的“--”的情况下搜索精确匹配的“value2”,在搜索每行时,这些字符不允许使用“==”运算符进行精确字符串匹配。您可以去掉前导破折号,然后拆分结果以获得不带破折号的第一个单词: 假设您在以下行上迭代: for line in lines: first_word
...
--value1 X
---value2 Y
----value3 Z
....
如何在忽略前面的“--”的情况下搜索精确匹配的“value2”,在搜索每行时,这些字符不允许使用“==”运算符进行精确字符串匹配。您可以去掉前导破折号,然后拆分结果以获得不带破折号的第一个单词: 假设您在以下行上迭代:
for line in lines:
first_word = line.lstrip("-").split()
if first_word == "value2":
print("found")
正则表达式也有帮助,右边有单词边界
if re.match(r"^-*value2\b",line):
您可以去掉前导破折号,然后拆分结果以获得不带破折号的第一个单词: 假设您在以下行上迭代:
for line in lines:
first_word = line.lstrip("-").split()
if first_word == "value2":
print("found")
正则表达式也有帮助,右边有单词边界
if re.match(r"^-*value2\b",line):
在使用精确匹配之前,可以使用
s.lstrip('-')
删除字符串s
开头的额外字符。还有其他处理方法,但这是不使用正则表达式的最快和最严格的方法。在使用精确匹配之前,可以使用s.lstrip('-')
删除字符串s
开头的额外字符。还有其他方法可以处理这个问题,但这是不使用正则表达式的最快和最严格的方法。您能保证所有带的有效单词前面有破折号,后面有空格吗?如果是这样,你可以这样写:
for line in lines:
if '-value2 ' in line:
print(line.split()[1])
你能保证所有带的有效单词前面有破折号,后面有空格吗?如果是这样,你可以这样写:
for line in lines:
if '-value2 ' in line:
print(line.split()[1])
我知道的最简单的方法是:
for line in lines:
if 'value2' in line:
...
另一种方式(如果您需要了解位置):
如果需要,也可以做更复杂的事情,比如正则表达式,但不知道需要什么验证。我觉得以上两种方法是最简单的
更新(回复评论):
(为了保持简单,这需要在数字后面加一个空格)
我知道的最简单的方法是:
for line in lines:
if 'value2' in line:
...
另一种方式(如果您需要了解位置):
如果需要,也可以做更复杂的事情,比如正则表达式,但不知道需要什么验证。我觉得以上两种方法是最简单的
更新(回复评论):
(为了保持简单,这需要在数字后面加一个空格)
如果第行中的'value2'没有进行精确的单词匹配。尝试使用value222
这是正确的,但我不确定op在这里需要它,所以我给出了两个非常简单的建议。我将用一个快速的替代方法编辑我的文章(假设之后需要一个空间)。任何比这更复杂的问题,我都会转到其他人发布的解决方案或使用正则表达式。如果第行中的“value2”没有进行精确的单词匹配。尝试使用value222
这是正确的,但我不确定op在这里需要它,所以我给出了两个非常简单的建议。我将用一个快速的替代方法编辑我的文章(假设之后需要一个空间)。任何比这更复杂的问题,我将转到其他人发布的解决方案或使用正则表达式。