用于函数调用的Java正则表达式

时间:2014-08-12 19:12:12

标签: java regex function

我正在努力将当前的正则表达式语句转换为只接受两个字符串参数(现在它接受无限数量的参数),但我有点困惑。谁能给我一些指示?

^\s*test_function\((['"])(.+?)\2\);?\s*$

有效输入的示例包括:

test_function('ab', 'cd')
test_function('120abcd', '1209sfdlc')
test_function('fslkf,z', 'sldkfj129')
test_function("hi", "hello")

2 个答案:

答案 0 :(得分:2)

你可以使用这个正则表达式来限制你的函数只接受2个字符串参数(用单引号或双引号括起来)

^\s*test_function\((['"])([^'"]*)\1 *, *(['"])([^'"]*)\3\);?\s*$

使用捕获的组#2#4作为函数参数。

RegEx Demo

答案 1 :(得分:1)

你可以尝试

            test_function\(\s*"[^"]+"\s*,\s*"[^"]+"\s*\)
First argument ----------------^^^^          ^^^^-------- Second argument      

这是online demo


如果单引号也是有效输入,请尝试

test_function\(\s*(["'])[^\1]+?\1\s*,\s*(["'])[^\2]+?\2\s*\)

这是demo