我正在使用 Python 正则表达式搜索包含字符的句子。 但我找不到我想要的句子。 请帮助我
正则表达式.py
opfile = open(file.txt, 'r')
contents = opfile.read()
opfile.close()
index = re.findall(r'\[start file\](?:.|\n)*\[end file\]', contents)
item = re.search(r'age.*', str(index))
file.txt(示例)
[start file]
name: steve
age: 23
[end file]
结果
<re.Match object; span=(94, 738), match='age: >
未打印年龄
最佳答案
这里有几个问题:
str(index)
返回字符串列表的字符串文字表示,这使得进一步处理结果变得困难(?:.|\n)*
是一个非常消耗资源的结构,仅使用.
和re.S
或re.DOTALL
选项- 如果您打算查找单个匹配项,请使用
re.search
,而不是re.findall
。
这是一个可能的解决方案:
match = re.search(r'\[start file].*\[end file]', contents, re.S)
if match:
match2 = re.search(r"\bage:\s*(\d+)", match.group())
if match2:
print(match2.group(1))
输出:
23
如果您想在输出中获取age
,请使用match2.group()
。
关于python - 使用Python正则表达式搜索包含字符的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72669722/