Python正则表达式中的匹配括号

3 投票
3 回答
14158 浏览
提问于 2025-04-16 13:40

我有一个类似这样的内容:

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 只是找字符串里面有没有符合这个表达式的部分。

撰写回答