我需要一个PCRE正则表达式来匹配特定的平衡括号情况。虽然我已经查看了许多有关此问题的讨论(例如这里),但我无法使任何东西起作用。我正在尝试使用regex101.com进行调试。
我想要匹配类似于
我想要匹配类似于
MyFunction(foo)
中的foo
字符串,其中foo
可以是任何内容,包括本身包含括号的其他函数调用。也就是说, 我想能够匹配以下内容:MyFunction(23)
MyFunction('Sekret')
MyFunction( 23, 'Sekret', Date() )
MyFunction( Encrypt('Sekret'), Date() )
但是MyFunction可能是一个更大字符串的一部分,该字符串本身可以有括号,例如:
logger.info("MyFunction( Encrypt('Sekret'), Date() )")
如果这样的话,我只想匹配传递给MyFunction的内容,而不是传递给logger.info的内容。
这样做的目的是用别的东西替换传递给MyFunction的任何东西,例如“XXXXXX”。
使用链接问题中的正则表达式(例如\((?:[^)(]+|(?R))*+\)
)将匹配最外层的圆括号,但如果我尝试在它之前加上MyFunction
- 也就是说,如果我尝试使用正则表达式MyFunction\((?:[^)(]+|(?R))*+\)
- 它就会失败。
MyFunction(foo(bar(baz)))
)将会失败。 - tshiono