我必須決議括號中的所有文本,但不是包含“GST”的文本
例如:
(AUSTRALIAN RED CROSS – ATHERTON)
(Total GST for this Invoice $1,104.96)
today for a quote (07) 55394226 ? admin.nerang@waste.com.au ? this applies to your Nerang services.
預期的決議值:
AUSTRALIAN RED CROSS – ATHERTON
我在嘗試:
^\(((?!GST).)*$
但它只匹配值并且沒有正確分組。
https://regex101.com/r/HndrUv/1
相同的正確正則運算式是什么?
uj5u.com熱心網友回復:
這個正則運算式應該可以得到預期的字串:
^\((?!.*GST)(.*)\)$
它首先檢查它是否不包含正則運算式*GST。如果為真,則捕獲整個文本。
(?!*GST)(.*)
然后所有這些都被包圍\(并將\)其排除在捕獲組之外。
\((?!.*GST)(.*)\)
最后,您添加 BOL 和 EOL 符號并獲得結果。
^\((?!.*GST)(.*)\)$
預期值保存在第一個捕獲組(.*)中。
uj5u.com熱心網友回復:
您可以使用
^\((?![^()]*\bGST\b)([^()]*)\)$
請參閱正則運算式演示。詳情:
^- 字串的開始\(- 一個(字符(?![^()]*\bGST\b)- 如果在當前位置的右側有零個或多個字符而不是)和(然后GST作為整個單詞(\b如果不需要整個單詞匹配,請洗掉 s) ,則匹配失敗的否定前瞻([^()]*))- 第 1 組:除and之外的任何零個或多個字符(\)- 一個)字符$- 字串結束
獎金:
如果還需要匹配較長文本中的子字串,則需要在上述正則運算式中洗掉^和錨定。$
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418921.html
標籤:
