Python正则表达式:" re.match()"与" re.sub()"的工作方式不同为正则表达式

时间:2015-04-27 11:44:07

标签: python regex

我正在尝试检查我的字符串是否包含一些正则表达式。

奇怪的是,虽然re.sub()会找到正则表达式并将替换它,但re.match()不会返回任何结果......

这是我的用法:

re.match(): - 尝试匹配模式,\s*param2 - 不返回任何内容

>>> str = 'func(param1, param2)'
>>> str
'func(param1, param2)'
>>> results = re.match(r',\s*param2', str)
>>> print(results)
None

re.sub(): - 通过"成功替换相同的模式,\s*param2你好"

>>> str = 'func(param1, param2)'
>>> str
'func(param1, param2)'
>>> new_str = re.sub(r',\s*param2', ' hello', str)
>>> new_str
'func(param1 hello)'

如何在不替换模式的情况下匹配模式,\s*param2

1 个答案:

答案 0 :(得分:4)

请注意,re.match匹配字符串的开头。您可能正在寻找re.search。有关详细信息,请参阅search vs. match

>>> str = 'func(param1, param2)'
>>> re.match(r',\s*param2', str)
>>> re.search(r',\s*param2', str)
<_sre.SRE_Match object at 0x7f16b72b83d8>