我正在努力将当前的正则表达式语句转换为只接受两个字符串参数(现在它接受无限数量的参数),但我有点困惑。谁能给我一些指示?
^\s*test_function\((['"])(.+?)\2\);?\s*$
有效输入的示例包括:
test_function('ab', 'cd')
test_function('120abcd', '1209sfdlc')
test_function('fslkf,z', 'sldkfj129')
test_function("hi", "hello")
答案 0 :(得分:2)
你可以使用这个正则表达式来限制你的函数只接受2个字符串参数(用单引号或双引号括起来)
^\s*test_function\((['"])([^'"]*)\1 *, *(['"])([^'"]*)\3\);?\s*$
使用捕获的组#2
和#4
作为函数参数。
答案 1 :(得分:1)
你可以尝试
test_function\(\s*"[^"]+"\s*,\s*"[^"]+"\s*\)
First argument ----------------^^^^ ^^^^-------- Second argument
如果单引号也是有效输入,请尝试
test_function\(\s*(["'])[^\1]+?\1\s*,\s*(["'])[^\2]+?\2\s*\)
这是demo