簡體   English   中英

如果字符串前面包含一個單詞,則正則表達式不捕獲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM