加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

RegEx:紧接在最后一个打开的括号之后的文本

发布时间:2020-12-15 09:20:41 所属栏目:大数据 来源:网络整理
导读:我对RegEx有一点了解,但此刻,它远远超出了我的能力. 我需要帮助才能在最后一个没有匹配括号的开括号之后立即找到文本/表达式. 这是开发中的开源软件(Object Pascal)的CallTip. 下面是一些例子: ------------------------------------Text I need-----------
我对RegEx有一点了解,但此刻,它远远超出了我的能力.

我需要帮助才能在最后一个没有匹配括号的开括号之后立即找到文本/表达式.

这是开发中的开源软件(Object Pascal)的CallTip.

下面是一些例子:

------------------------------------
Text                  I need
------------------------------------
aaa(xxx               xxx
aaa(xxx,xxx
aaa(xxx,yyy          xxx
aaa(y=bbb(xxx)        y=bbb(xxx)
aaa(y <- bbb(xxx)     y <- bbb(xxx)
aaa(bbb(ccc(xxx       xxx
aaa(bbb(x),ccc(xxx   xxx
aaa(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传递问题中发布的所有测试用例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读