Skip to main content
 首页 » 编程设计

Python 匹配正则表达式总是返回 None

2025年05月04日22jyk

我有一个匹配方法总是返回无的 python 正则表达式。我在 pythex 网站上测试过,模式似乎没问题。

Pythex example

但是当我尝试使用 re 模块时,结果总是 None:

import re 
a = re.match(re.compile("\.aspx\?.*cp="), 'page.aspx?cpm=549&cp=168') 

我做错了什么?

请您参考如下方法:

re.match() 仅匹配字符串的开头。使用 re.search()相反:

re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168') 

演示:

>>> import re 
>>> re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168') 
<_sre.SRE_Match object at 0x105d7e440> 
>>> re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168').group(0) 
'.aspx?cpm=549&cp=' 

请注意,任何采用模式的 re 函数,接受字符串并将为您调用 re.compile()(缓存编译结果)。你只需要使用 re.compile() 如果你想存储编译后的表达式以供重复使用,此时你可以调用 pattern.search() :

pattern = re.compile(r"\.aspx\?.*cp=") 
pattern.search('page.aspx?cpm=549&cp=168')