Python正则表达式中的匹配括号
我有一个类似这样的内容:
store(s)
最后的结果像是 "1 store(s)"。
我想用Python的正则表达式来匹配它。
我试过像这样写 re.match('store\(s\)$', text)
,但是没有成功。
这是我尝试过的代码:
import re
s = '1 store(s)'
if re.match('store\(s\)$', s):
print('match')
3 个回答
0
你有没有考虑过用 re.match('(.*)store\(s\)$',text)
这个方法呢?
1
Python提供了两种基于正则表达式的基本操作:match只检查字符串开头是否匹配,而search则会检查字符串任何位置是否匹配(这也是Perl默认的做法)。
这段内容直接来自官方文档,但这个问题经常被提到。
6
这段话是直接回应你的评论。
试试这个
import re s = '1 stores(s)' if re.match('store\(s\)$',s): print('match')
解决办法是用 re.search
,而不是 re.match
。因为 re.match
是试图把整个字符串都和正则表达式匹配,而 re.search
只是找字符串里面有没有符合这个表达式的部分。