如何编写正则表达式以匹配以下字符串:
name(abc1)或number(param9)或listget(12jtxgh)
我想匹配括号中的字符串,只要它是由名称或数字或listget预先添加的。
我试过这个: R '((。*?))'
如果我的表达如下所示:
(name(foo)& number(bar)) - listget(baz)
然后它开始匹配(name(foo)也。我希望我的正则表达式只从上面的表达式中提取foo,bar和baz,因为它附加了名称,数字,listget。
我必须以#r'regex'
这种形式写正则表达式答案 0 :(得分:0)
在正则表达式中,括号是用于分组的特殊符号。要匹配它们,您必须使用转义字符\
,例如\(
。
不匹配符号ex。括号:
[^)]
应该使用。你不需要转义字符的地方。
要找到替代方法,您应该使用括号括起来的管道符|
。例如:
(mary|john)
如果未在括号内的结果匹配中捕捉组,则应以?:
答案 1 :(得分:0)
以下正则表达式应该可以解决这个问题:
(?:listget|name|number)\(([^)]+)\)
您可以访问this link尝试一个有效的演示。正如其他人所指出的那样,必须对括号进行转义以匹配它们的文字,否则正则表达式将它们用于不同目的(如捕获组)。