import re
txt='''\
Text=Some aliens try to run into the fields
Text=Some aliens try
Text=Some aliens try to run'''
QUERY='Some aliens try'
print re.findall(r'^(Text={}\s*)$'.format(QUERY), txt, re.M)
# ['Text=Some aliens try']
它具有re.M标志,因此行开始^和行尾$锚定将与新行匹配,而不是仅限于整个字符串。在
您还可以使用“传统”Python字符串格式将查询字符串插入到模式中:
^{pr2}$
您可以根据需要添加各种\s*,以补偿文本的噪音。在
对于这样一个简单的例子,不要忘记Python的字符串测试:
print [line for line in txt.splitlines() if line.strip().endswith(QUERY)]
# ['Text=Some aliens try']
import re
TEXT = """Text=Some aliens try to run into the fields
Text=Some aliens try
Text=Some aliens try to run"""
QUERY = 'Some aliens try'
my_query_reg = re.compile('Text=\s*(%s)\s*$' % QUERY,re.M)
print my_query_reg.findall(TEXT)
默认情况下,查询中的
$
只与字符串的末尾匹配。在使用^{} 选项使
$
与任何行的结尾匹配:如果我明白你想要什么,试试这个:
它具有
re.M
标志,因此行开始^
和行尾$
锚定将与新行匹配,而不是仅限于整个字符串。在您还可以使用“传统”Python字符串格式将查询字符串插入到模式中:
^{pr2}$您可以根据需要添加各种
\s*
,以补偿文本的噪音。在对于这样一个简单的例子,不要忘记Python的字符串测试:
\s*
以防=
与所研究的字符串之间或字符串与行尾之间存在空格相关问题 更多 >
编程相关推荐