Python 正则表达式字符串匹配?
我在把我用JavaScript写的正则表达式经验转到Python上时遇到了很多麻烦。
我只是想让这个代码能正常工作:
print(re.match('e','test'))
...但是它输出的是None。如果我这样做:
print(re.match('e','est'))
它能匹配... 是不是默认会匹配字符串的开头?当它匹配成功时,我该如何使用这个结果呢?
我该怎么让第一个代码能匹配成功?有没有比Python官网提供的文档更好的资料?
2 个回答
9
我觉得文档写得很清楚。
re.match(模式, 字符串[, 标志])¶
If zero or more characters **at the beginning of string** match the
这是一个正则表达式模式,它会返回一个对应的匹配对象。如果字符串和这个模式不匹配,就会返回None;需要注意的是,这和返回一个长度为零的匹配是不同的。
58
re.match
会自动在你的正则表达式开头加上 ^
,也就是说,它只会在字符串的开头进行匹配。
re.search
则会在字符串的每个位置都尝试匹配。
一般来说,我建议使用 re.search
,然后在需要的时候自己加上 ^
。