我需要帮助才能在最后一个没有匹配括号的开括号之后立即找到文本/表达式.
这是开发中的开源软件(Object Pascal)的CallTip.
下面是一些例子:
------------------------------------Text I need------------------------------------aaa(xxx xxxaaa(xxx,xxxaaa(xxx,yyy xxxaaa(y=bbb(xxx) y=bbb(xxx)aaa(y <- bbb(xxx) y <- bbb(xxx)aaa(bbb(ccc(xxx xxxaaa(bbb(x),ccc(xxx xxxaaa(bbb(x),ccc(x) bbb(x)aaa(bbb(x),ccc(x),bbb(x)aaa(?,bbb(?? ??aaa(bbb(x),ccc(x)) ''aaa(x) ''aaa(bbb( ''------------------------------------For all text above the RegEx proposed by @Bohemian(?<=\()(?=([^()]*\([^()]*\))*[^()]*$).*?(?=[,]|$)(?! <-)(?<! <-)matches all cases.For the below (I found these cases when implementing the RegEx in the software) not------------------------------------New text I need------------------------------------aaa(bbb(x,y) bbb(x,y)aaa(bbb(x,y,z) bbb(x,z)------------------------------------
是否可以为这些情况编写RegEx(PCRE)?
在上一篇文章(RegEx: Word immediately before the last opened parenthesis)中,Alan Moore(非常感谢新人)帮助我在下一个RegEx的最后一个左括号前找到文本:
\w+(?=\((?:[^()]*\([^()]*\))*[^()]*$)
但是,我无法进行适当的调整以便立即匹配.
有人可以帮忙吗?
解决方法 使用展望:(?<=\()(?=([^()]*\([^()]*\))*[^()]*$).*?(\(.*?\))?(?=[,]|$)(?! <-)(?<! <-)
通过this running on rubular传递问题中发布的所有测试用例.
总结以上是内存溢出为你收集整理的RegEx:紧接在最后一个打开的括号之后的文本全部内容,希望文章能够帮你解决RegEx:紧接在最后一个打开的括号之后的文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)