[英]Regex: Only match non-nested groups
我有一些文本,以類似的模式:
new{test}anotherone{test{nest}}new1{test1}new2{test2}
我是 Regex 的新手,並嘗試創建一個匹配組的模式,以便對於每個匹配項:組 1:新組 2:測試
我有這個使用([\\S][az#-()->]+)\\{([^?+]*?)\\}
使用 JavaScript
但是,我想忽略帶有嵌套的塊,以便從匹配中忽略anotherone{test{nest}}
。 這是我對Regex101的嘗試
提前致謝!
更新:字符串也可能嵌套在嵌套部分內,例如
new{test}ignore_this{test1{test1}{test2{test2}}new{test}new{test}
這樣它應該只匹配: Group1: new / Group2: test
您可以嘗試使用此正則表達式來匹配每對new
和test
(輸入中的 3 對):
(?<!{)\b([^{}]+){([^{}]*)}(?![^{}]*})
正則表達式詳情:
(?<!{)
: 確保我們沒有{
在之前的位置\\b
: 字邊界([^{}]+)
:匹配第 1 組中不是{
和}
的任何字符的 1+{
: 匹配一個{
([^{}]*)
:匹配第 2 組中不是{
和}
的任何字符的 0+}
: 匹配一個}
(?![^{}]*})
:否定前瞻斷言我們沒有前面沒有任何{
和}
的結束}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.