Java正则表达式匹配函数内的参数

标签 java regex parameters

我想写一个正则表达式来提取func1(parameter1,parameter2)parameter1parameter2的长度>parameter1parameter2 范围从 1 到 64。

(func1) (\() (.{1,64}) (,\\s*) (.{1,64}) (\))

我的版本无法处理以下情况(嵌套函数)

func2(func1(ef5b, 7dbdd))

对于parameter2,我总是得到“7dbdd)”。我该如何解决这个问题?

最佳答案

使用“除右括号外的任何内容”([^)]),而不是简单的“任何内容”(.):

(func1) (\() (.{1,64}) (,\s*) ([^)]{1,64}) (\))

演示:https://regex101.com/r/sP6eS1/1

关于Java正则表达式匹配函数内的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035318/

相关文章:

java - 替换字符串以与条件完全匹配

PowerShell 中的函数参数

powershell - 从PowerShell脚本设置Octopus参数

java - 为什么我在打印特定间隔的数字时得到此输出

java - 进入测试

java - 并发和并发数据结构

sql-server - 选择全部作为多值参数的默认值

java - 编译单个 Java 文件

php - 如何在php中将多个<br/>标签转换为单个<br/>标签

正则表达式匹配数字两次或四次