[英]Regex not to capture if a string contains a word before it
我想要 select 僅當“危險”這個詞是一個單獨的詞並且前面沒有“非”或“非”時。
例如:
無危險
無危險
危險的
非農業危險品
regex 1: ^(?!non[-/s]?)hazardous$
regex 2: ^(?!non-|non\s)hazardous$
我嘗試了上面的兩個正則表達式,它為前 3 個句子給出了正確的結果,但它在第 4 個句子中沒有選擇 hazardous。 我想在第 4 句中使用 select hazardous 因為它前面沒有“non”或“non-”
您可以使用
r'\b(?<!\bnon[-\s])hazardous\b'
請參閱正則表達式演示。 模式匹配
\b
- 單詞邊界(?<!\bnon[-\s])
- 如果當前位置的左側緊鄰有non-
或non
和空格,則匹配失敗的負后視hazardous
- 一個字符串\b
- 單詞邊界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.