Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中匹配精确字符串_Python_String_Exact Match - Fatal编程技术网

在python中匹配精确字符串

在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

如何匹配Python中可以动态捕获/忽略以下情况的精确字符串

如果我想从格式如下的文件中获取此IE输出“Y”中的值2:

...
--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在这里需要它,所以我给出了两个非常简单的建议。我将用一个快速的替代方法编辑我的文章(假设之后需要一个空间)。任何比这更复杂的问题,我将转到其他人发布的解决方案或使用正则表达式。