簡體   English   中英

正則表達式匹配這些單詞,但排除與此匹配

[英]Regex match these words, but exclude matches with these

我正在尋找一個正則表達式來運行幾個字符串並匹配其中的這些單詞:

Maces Armour Evasion Shields

排除包含以下單詞的字符串:

Swords Axes Staves

例如(這兩行是一個字符串):

12% Increased Physical Damage with Maces
8% Increased Armour

應該是一個匹配項,但不應該匹配(這2行也是一個字符串,但其中包含禁止的單詞“ swords”和所需的單詞“逃避”):

10% Increased Evasion
8% Increased Attack Speed with Swords

如何排除該列表?

您可以對所需的單詞使用前瞻性,對禁止的單詞使用否定前瞻(如果您的正則表達式引擎允許這兩個功能):

(?s)(?=.*\b(?:Maces|Armour|Evasion|Shields)\b)(?!.*\b(?:Swords|Axes|Staves)\b)^.+$

您可以使用singleline正則表達式:

/^(?=.*(?>Maces|Armour|Evasion|Shields))(?!.*(?>Swords|Axes|Staves)).+$/s
  • (?=.*(?>Maces|Armour|Evasion|Shields))斷言字符串中存在這些單詞之一[無回溯]
  • (?!.*(?>Swords|Axes|Staves))斷言字符串中沒有這些單詞[無回溯]

這是一個正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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