我正在尝试从页面源中找到一个正则表达式模式,它在正则表达式在线编辑器中很好用,但是当我在笔记本中尝试时,找不到任何匹配项
http://www.yifysubtitles.com/subtitle/.+zip
它可以在在线编辑器中正常工作:
但不是jupyter笔记本:
我所缺少的,请帮忙。
文字,作为参考:
...
[DOWNLOAD SUBTITLE](http://www.yifysubtitles.com/subtitle/blockers2018web-
dlx264-fgt-english-128543.zip)
...
答案 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>
此外,别忘了转义文字.
字符,如果不进行转义,这些字符将不被相同对待(.
将匹配任何字符,如果不进行转义。