如何从我粘贴在下面的文本部分中获得出现在Telephone
前面的地址。我尝试了以下方法,但没有任何帮助。
这是我到目前为止尝试过的代码:
import re
content="""
Campbell, Bellam Associés Inc.
3003 Rue College
Sherbrooke, QC J1M 1T8
Telephone: 819-569-9255
Website: http://www.assurancescb.com
"""
pattern = re.compile(r"(.*)(?=Telephone)")
for item in pattern.finditer(content):
print(item.group())
预期输出:
Campbell, Bellam Associés Inc.
3003 Rue College
Sherbrooke, QC J1M 1T8
文本块始终像粘贴的文本一样,并且没有附加任何标记,因此我选择使用正向后方标记,因此我尝试像上面那样进行标记。
答案 0 :(得分:1)
dot与换行符不匹配,因此您可以使用modifier (?s)
或使用re.S或re.DOTALL
pattern = re.compile(r"(.*)(?=Telephone)", re.S)
或
pattern = re.compile(r"(?s)(.*)(?=Telephone)")
您也可以不使用分组来获得比赛:
(?s).*(?=Telephone)
答案 1 :(得分:1)
更改行
模式= re.compile(r“(。*)(?=电话)”)
收件人
pattern = re.compile(r"(.*)(?=Telephone)", re.DOTALL)
使您的正则表达式通配符(*)与换行符匹配。 :)