You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

匹配恰好包含两个参数的函数调用的正则表达式

在多数编程语言中,函数调用的格式为函数名后接圆括号包裹的参数,示例如下:

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

要精确匹配上述示例中恰好包含两个参数的函数调用,需要解决两个核心问题:正则中圆括号的转义,以及严格限制参数数量为两个。

常见直观写法的问题

类似\w+\([^)]+,[^)]+\)的写法会失效,原因有两点:

  • 正则中的(和)是特殊分组字符,未转义无法匹配实际的圆括号符号;
  • [^)]+会匹配任意非)的字符(包括逗号),因此会错误匹配到三个及以上参数的调用(比如my_function(a,b,c)会被误匹配,因为第一个[^)]+会匹配a,b,第二个匹配c)。

针对示例场景的正确正则表达式

^\w+\(\s*\w+\s*,\s*\w+\s*\)$

正则各部分解释

  • ^\w+:匹配行首的函数名(由字母、数字、下划线组成);
  • \(:转义左圆括号,匹配实际的(符号;
  • \s*:匹配参数前后可选的空白字符(兼容带空格的写法,比如my_func( arg1 , arg2 ));
  • \w+:匹配第一个参数;
  • \s*,\s*:匹配分隔两个参数的逗号,前后允许空白;
  • \w+:匹配第二个参数;
  • \):转义右圆括号,匹配实际的)符号;
  • $:匹配行尾,确保圆括号后无多余内容,避免匹配参数超标的情况。

扩展说明

如果参数包含更复杂内容(比如带括号的表达式、字符串字面量等),上述基础正则无法满足需求,需要根据具体语言的语法规则进一步调整,但针对给出的示例场景,该正则可精准匹配目标函数调用。

内容的提问来源于stack exchange,提问作者Jay Bienvenu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:31:21