包含两个参数的函数调用的正则表达式



在许多语言中,函数调用由一个段塞和任意数量的用括号括起来的参数组成,如:

my_function(); // no arguments
my_function(one_argument);
my_function(first_argument,second_argument);
my_function(first_argument,second_argument,third_argument);

哪个正则表达式将与带有两个参数的大小写完全匹配(上面伪代码中的第三个大小写)?

";显而易见的答案";将类似于CCD_ 1。然而,括号的特殊含义破坏了这个表达式。

您可以使用否定字符类编写这样的模式,也可以省略匹配逗号:

w+([^,)]+,[^,)]+);

解释

  • w+匹配1+个单词字符
  • (匹配`(1
  • [^,)]+匹配除,)之外的1+个字符
  • ,匹配单个逗号
  • [^,)]+匹配除,w+([^)]+,[^)]+)0之外的1+个字符
  • );匹配);

Regex演示

尝试:

/w+([a-zA-Z_$][w$]*, ?[a-zA-Z_$][w$]*);/g

RegEx101

描述
\w+\([a-zA-Z_$]
任何字母、数字或下划线一次或多次,然后是文字(,然后是任何字母、下划线或美元符号
[\w$]*
任何字母、数字、下划线或美元符号零次或多次,然后是文字,,然后是一个空格或什么都没有
[a-zA-Z_$][\w$]*\)
任何字母、下划线或美元符号,然后任何字母、数字、下划线或金额符号零次或多次,然后是文字);

最新更新