我如何在Python中匹配精确的字符串,它可以动态地捕捉/忽略以下情况?
如果我想在此IE中从格式如下的文件中获得value2输出"Y“:
...
--value1 X
---value2 Y
----value3 Z
....
如何搜索精确匹配的"value2“,同时忽略前面的”-“,这些字符在搜索每一行时不允许使用"==”操作符进行精确字符串匹配。
发布于 2019-03-11 16:51:32
你可以去掉前导破折号,然后拆分结果,得到没有破折号的第一个单词:
假设您在这些行上迭代:
for line in lines:
first_word = line.lstrip("-").split()
if first_word == "value2":
print("found")
正则表达式也可以提供帮助,单词边界在右边
if re.match(r"^-*value2\b",line):
发布于 2019-03-11 16:54:11
在使用完全匹配之前,可以使用s.lstrip('-')
删除字符串s
开头的多余字符。还有其他方法可以解决这个问题,但这是不使用正则表达式的最快、最严格的方法。
发布于 2019-03-11 16:54:47
你能保证所有有效的单词前面有破折号,后面有空格吗?如果是这样的话,你可以这样写:
for line in lines:
if '-value2 ' in line:
print(line.split()[1])
https://stackoverflow.com/questions/55106518
复制相似问题