我正在尝试检查我的字符串是否包含一些正则表达式。
奇怪的是,虽然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
?
答案 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>