正则表达式匹配特定函数的参数
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 来尝试工作演示。正如其他人指出的那样,必须转义括号以匹配其文字,否则它们将被正则表达式用于不同目的(如捕获组)。
如何编写正则表达式来匹配以下字符串:
名称(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 来尝试工作演示。正如其他人指出的那样,必须转义括号以匹配其文字,否则它们将被正则表达式用于不同目的(如捕获组)。