我正在使用以下正则表达式来匹配引用特定 UDF 的任何数据脚本脚本的内容:
\[?shared3\]?\.\[?stringsum\]?(((?'Open'\()[^()]*)+((?'Close-Open'\))[^()]*)+)*
它匹配以下任何实例:
Shared3.StringSum(<some contents here>)
使用平衡组,我还尝试支持以下案例:
Shared3.StringSum(SomeOtherMethod('input') + AnotherMethod('input'))
但是,当输入如下时,我遇到了麻烦:
Shared3.StringSum(SomeOtherMethod('input') + AnotherMethod('input')) + ThirdMethod('input')
在最后一种情况下,我的正则表达式也匹配该ThirdMethod('input')
部分。
有什么办法可以改变我的正则表达式,所以只要“括号计数”为0,它就会停止匹配?