我需要一個正則運算式從字串中洗掉所有(和),除了兩個@ 之間的那些。
例子:
( [15] == @value 1@ || [15] == @value 2@ ) && ( [5] == @value 3 (ignore these)@ || [5] == @value 4@ ) || ( [2] == @value 5@ )
我需要的字串:
[15] == @value 1@ || [15] == @value 2@ && [5] == @value 3 (ignore these)@ || [5] == @value 4@ || [2] == @value 5@
我嘗試使用此非捕獲組進行一些操作,以除@ 之間的空格以外的空格進行拆分,但找不到方法:
(?:@[^@]*@|\S)
我面臨著解決這個問題的壓力,任何幫助表示贊賞,謝謝。
uj5u.com熱心網友回復:
您可以使用此正則運算式進行匹配:
\s*[()](?=(?:[^@]*@[^@]*@)*[^@]*$)\s*
并替換為空字串。
正則運算式演示
正則運算式詳情:
\s*: 匹配 0 個或多個空格[()]: 匹配(或)(?=: 開始正向前瞻(?:[^@]*@[^@]*@)*: 匹配 0 對或多對子@...@串[^@]*: 匹配 0 個以上的任何東西@$: 結尾
): 結束正向前瞻\s*: 匹配 0 個或多個空格
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316102.html
標籤:javascript 正则表达式 捕获组
