java - 正则表达式 rpg 函数

标签 java regex

(希望写出好题)

我必须使用正则表达式匹配 Java 中的 RPG 函数。 我拥有的功能有这些可能的方式:

nameFunction()
nameFunction(params)
nameFunction('otherFunction(' + variable + ')')
nameFunction('otherFunction.get('''+trim(string_variable)+''')')
fun1() + fun2()

其中 ' 用于打开/关闭字符串,' 也用作 ' 本身的转义字符。 我已经尝试过这个正则表达式:

 \w+\([^\)]*\)

我想用\w+ 匹配名称,然后是 (,所有字符,但没有右括号,最后是右括号。 前两个功能被正确识别,但第三个和第四个功能没有。正则表达式匹配

nameFunction('otherFunction(' + variable + ')
nameFunction('otherFunction.get('''+trim(string_variable)

跳过第三个中最后一个右括号和第四个中的字符串连接(第五个例子是为了表明我可以有多个函数,我想分别识别它们)。 有什么建议么?提前致谢。

最佳答案

如果字符串没有转义,你可以使用:

\w+\((?:[^'()]|'[^']*')*\)

如果你想处理反斜杠转义,你可以这样做:

\w+\((?:[^'()]|'(?:[^'\\]|\\.)*')*\)

关于java - 正则表达式 rpg 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074271/

相关文章:

java - 如何使用 Java 在 Windows 中比较 Fedora iso 下载文件与其 sha-256 校验和文本文件?

regex - Java regex 和 sed 不一样...?

c++ - 如何使用与 Boost 库匹配的 Perl 样式内存正则表达式

python - 如何仅按字符串中的第一个特殊字符拆分字符串?

java - 迭代 HTML 标签

java - 寻求更好的设计以使用java进行多调度

java - 使用 addIntentOptions 添加到菜单,为单个 Activity 提供多个 Intent

java - 将整数插入排序数组

javascript - 正则表达式 javascript 网站以/结尾

sql - 我想获取 SQL Server 中 @ 之前和任何其他特殊字符或空格之后的字符串