正则表达式在在线正则表达式解释器中匹配,但在python中不匹配

时间:2018-06-24 04:18:59

标签: python regex

我正在尝试从页面源中找到一个正则表达式模式,它在正则表达式在线编辑器中很好用,但是当我在笔记本中尝试时,找不到任何匹配项

here is my regex

http://www.yifysubtitles.com/subtitle/.+zip

它可以在在线编辑器中正常工作:

image

但不是jupyter笔记本:

image

我所缺少的,请帮忙。


文字,作为参考:

...    
[DOWNLOAD SUBTITLE](http://www.yifysubtitles.com/subtitle/blockers2018web-
dlx264-fgt-english-128543.zip)
...

1 个答案:

答案 0 :(得分:4)

您的搜索字符串跨越多行。要跨行匹配(在python中,默认情况下不会这样做),请在您的re.DOTALL调用中添加re.search标志:

>>> p = r'http://www\.yifysubtitles\.com/subtitle/[^.]+\.zip'  # improved, ty @dawg
>>> re.search(p, text, flags=re.DOTALL)
<_sre.SRE_Match object; span=(481, 565), match='http://www.yifysubtitles.com/subtitle/blockers201>

此外,别忘了转义文字.字符,如果不进行转义,这些字符将不被相同对待(.将匹配任何字符,如果不进行转义。