Skip to main content
 首页 » 编程设计

c#之正则表达式匹配这些词,但排除与这些匹配

2024年01月24日27Leo_wl

我正在寻找一个正则表达式来遍历多个字符串并匹配其中的这些词:

Maces Armour Evasion Shields 

排除同时包含这些词的字符串:

Swords Axes Staves 

例如(这两行是一个字符串):

12% Increased Physical Damage with Maces 
8% Increased Armour 

应该是一个匹配,但这个不应该是(这两行也是一个字符串,但它包含禁用的单词“swords”和需要的单词“evasion”):

10% Increased Evasion 
8% Increased Attack Speed with Swords 

如何排除该列表?

请您参考如下方法:

您可以对需要的词使用前瞻,对禁止的词使用否定前瞻(如果您的正则表达式引擎允许这两个功能):

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