正则表达式,代码和测试网站的不同结果

Regular expressions, different results from code and test website

我喜欢使用网站来测试我的正则表达式语法。我似乎遇到了一个我不知道如何解决的问题。

我用于正则表达式测试的网站: https://regex101.com/

这是我的示例代码:

import re

text = "[\xa0]\xa0National Notification Authority, [X]\xa0National Enquiry Point. Address, fax number and e-mail address (if available) of other body: \nMinistry of Agriculture, Livestock and Food Supply\nSecretariat of Trade and International Relations\nE-mail: sps@agricultura.gov.br"

results = re.findall("(?<=\: ).*",text)
print(results)

#results =[' ', ' sps@agricultura.gov.br']

但是,如果我使用具有相同 re 的网站,它 returns 我真正想要的 - 地址和任何联系方式。

#\nMinistry of Agriculture, Livestock and Food Supply\nSecretariat of Trade and International Relations\nE-mail: sps@agricultura.gov.br

我不确定发生了什么。有没有办法同时获取地址和联系方式?

默认情况下,点 . 匹配任何字符 除了 换行符。您的文本在冒号后有一个换行符:other body: \nMinistry。如果您希望点匹配任何字符,则必须相应地指示 findall

re.findall("(?<=\: ).*", text, flags=re.DOTALL) # Note the flags!