Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式在在线正则表达式解释器中匹配,但在python中不匹配_Python_Regex - Fatal编程技术网

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

正则表达式在在线正则表达式解释器中匹配,但在python中不匹配,python,regex,Python,Regex,我正在尝试一个来自页面源的正则表达式模式,它在正则表达式在线编辑器中运行良好,但当我在笔记本中尝试时,我找不到任何匹配项 : 它在在线编辑器中正常工作: 但不是jupyter笔记本: 我缺少什么,请帮助我 案文,作为参考: ... [DOWNLOAD SUBTITLE](http://www.yifysubtitles.com/subtitle/blockers2018web- dlx264-fgt-english-128543.zip) ... 您的搜索字符串跨越多行。要跨行匹

我正在尝试一个来自页面源的正则表达式模式,它在正则表达式在线编辑器中运行良好,但当我在笔记本中尝试时,我找不到任何匹配项

:

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

但不是jupyter笔记本:

我缺少什么,请帮助我


案文,作为参考:

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

您的搜索字符串跨越多行。要跨行匹配(在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>
>>p=r'http://www\.yifystitlets\.com/subtitle/[^.]+\.zip'#改进,ty@dawg
>>>重新搜索(p,text,flags=re.DOTALL)

您的搜索字符串跨越多行。要跨行匹配(在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>
>>p=r'http://www\.yifystitlets\.com/subtitle/[^.]+\.zip'#改进,ty@dawg
>>>重新搜索(p,text,flags=re.DOTALL)

知道你的正则表达式中的
不是字面的
而是“任意字符”的正则表达式元知道你的正则表达式中的
不是字面的
而是“任意字符”的正则表达式元你需要转义最后的
@dawg它应该是
.zip
。它的意思是一样的。那么应该是+\.zip。它的意思是一样的不是真的。对于文本
后跟扩展名的更好的正则表达式是
[^.]+\.zip
,您需要转义最后的
@dawg,它应该是
+\.zip
。它的意思是一样的。那么应该是+\.zip。它的意思是一样的不是真的。对于后跟扩展名的literal
更好的正则表达式应该是
[^.]+\.zip