正则表达式中的最后匹配符号
我找不到更合适的标题,不过这里有个例子:
import re
m = re.search(r"\((?P<remixer>.+) (Remix)\)", "Title (Menda Remix)")
m.group("remixer") # returns 'Menda' OK
m = re.search(r"\((?P<remixer>.+) (Remix)\)", "Title (Blabla) (Menda Remix)")
m.group("remixer") # returns 'Blabla) (Menda' FAIL
这个正则表达式可以找到第一个括号,但我想要找到最后一个括号,这样我总是能得到'Menda'。我用了一些额外的函数来解决这个问题,但我希望能用同一个正则表达式找到一个更简单、更一致的方法。
非常感谢大家。
4 个回答
1
用 [^()]+
代替 .+
,这样就不会匹配到括号了。
1
我可能会这样做:
m = re.search(r".*\((?P<remixer>.+) (Remix)\)", "Title (Blabla) (Menda Remix)")
3
re.search(r"\((?P<remixer>[^)]+) (Remix)\)", "Title (Blabla) (Menda Remix)")
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。