正则表达式匹配特定函数的参数

regex to match the argument of specific functions

如何编写正则表达式来匹配以下字符串:

名称(abc1) 或编号(param9) 或 listget(12jtxgh)

我只想匹配括号中的字符串,前提是它前面有名称或数字或 listget。

我试过这样做: r'((.*?))'

如果我的表情如下所示:

(名称(foo) & 编号(bar)) - listget(baz)

然后它也开始匹配 (name(foo)。我希望我的正则表达式从上面的表达式中仅提取 foo、bar 和 baz,因为它附加了名称、数字、listget。

我只需要用这种形式编写正则表达式#r'regex'

正则表达式中的括号是用于分组的特殊符号。要匹配它们,您必须使用像这样的 escape 字符 \ \(.

不匹配符号 ex。括号:

[^)]

应该使用。不需要转义字符的地方。

要找到替代方案,您应该使用括号括起来的竖线字符 |。示例:

 (mary|john)

为了不在括号内的结果匹配中捕获一个组,你应该从 ?:

开始

下面的正则表达式应该可以解决问题:

(?:listget|name|number)\(([^)]+)\)

您可以通过访问 this link 来尝试工作演示。正如其他人指出的那样,必须转义括号以匹配其文字,否则它们将被正则表达式用于不同目的(如捕获组)。