Python和正则表达式-在文件中搜索
假设我在*.txt文件中有一些文本:Python和正则表达式-在文件中搜索,python,regex,Python,Regex,假设我在*.txt文件中有一些文本: NUM_SITE_CHAINS 1 SITE_DESCR EVIDENCE_CODE: SOFTWARE BINDING FOR RESIDUE ZN A 179 NUMBER_OF_AA 4 22 EXPOSURE 0.45 0.26 DISCONTINUITY 18.000 SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700 ENVIRONMENT 0.718 -0.232 0.
NUM_SITE_CHAINS 1
SITE_DESCR EVIDENCE_CODE: SOFTWARE BINDING FOR RESIDUE ZN A 179
NUMBER_OF_AA 4 22
EXPOSURE 0.45 0.26
DISCONTINUITY 18.000
SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700
ENVIRONMENT 0.718 -0.232 0.138 0.000 40.164 28.782 55.655 42.505
我想在我的示例中找到以“SITE”开头的第6行。我不想找到第二行,因为“SITE”后面没有空格。为此,我尝试了以下方法:
with open(fname) as openfile:
for line in openfile:
for part in line.split():
if re.search(r"^SITE\s", part):
listSITE.append(line)
但是“列表站点”仍然是空的。正则表达式或不适当的re中是否存在问题。方法?提前谢谢你 使用
re.findall
,模式为^SITE.*$
:
input = "..."
lines = re.findall(r'^SITE .*$', input, flags=re.MULTILINE)
print(lines)
['SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700']
使用
re.findall
,模式为^SITE.*$
:
input = "..."
lines = re.findall(r'^SITE .*$', input, flags=re.MULTILINE)
print(lines)
['SITE -3.275 0.375 -0.525 0.125 44.400 57.400 44.725 21.700']
无需导入re,只需使用startswith(注意站点str末尾的空格)
无需导入re,只需使用startswith(注意站点str结尾的空格。对于循环,您可能不需要第二个
,并将if条件更改为if-re.search(r“^SITE\s”,行):
对于
循环,您可能不需要第二个,并将if条件更改为if-re.search(r“^SITE\s”,行):
也能捕获AAAA站点BBBB应该只捕获开头,beggining中带有法语口音的前一个版本是正确的,也能捕获AAAA站点BBBB应该只捕获开头,beggining中带有法语口音的前一个版本是正确的,非常好!而且-代码看起来更简单!非常感谢!很高兴看到帮助:)效果很好!而且-代码看起来更简单!非常感谢!乐于帮助:)