Python 正则表达式字符串匹配?

33 投票
2 回答
44390 浏览
提问于 2025-04-17 03:27

我在把我用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,然后在需要的时候自己加上 ^

http://docs.python.org/library/re.html

撰写回答