Regex 正则表达式-排除

Regex 正则表达式-排除,regex,words,Regex,Words,我有这个正则表达式 (?!L[aAOo]s\b|Se\b|El\b|La\b|Lo\b|Los\b|Las\b|Este\b|ese\b|Aquel\b|Esta\b|Esa\b|Aquella\b|Estos\b|Esos\b|Aquellos\b|Estas\b|Esas\b|Aquellas\b|Mi\b|Tu\b|Su\b|Mis\b|Tus\b|sus\b|Mio\b|Mia\b|Tuyo\b|Tuya\b|Suyo\b|Suya\b|algún\b|alguna\b|algunos\

我有这个正则表达式

(?!L[aAOo]s\b|Se\b|El\b|La\b|Lo\b|Los\b|Las\b|Este\b|ese\b|Aquel\b|Esta\b|Esa\b|Aquella\b|Estos\b|Esos\b|Aquellos\b|Estas\b|Esas\b|Aquellas\b|Mi\b|Tu\b|Su\b|Mis\b|Tus\b|sus\b|Mio\b|Mia\b|Tuyo\b|Tuya\b|Suyo\b|Suya\b|algún\b|alguna\b|algunos\b|algunas\b|ningún\b|ninguna\b|ningunos\b|ningunas\b|bastante\b|bastantes\b|otro\b|otra\b|otros\b|otras\b|cierto\b|cierta\b|ciertos\b|ciertas\b|poco\b|poca\b|pocos\b|pocas\b|cualquier\b|cualquiera\b|cualesquiera\b|demasiado\b|demasiada\b|demasiados\b|demasiadas\b|tal\b|tales\b|escasos\b|escasas\b|tanto\b|tanta\b|tantos\b|tantas\b|cada\b|todo\b|toda\b|todos\b|todas\b|más\b|menos\b|unos\b|unas\b|mucho\b|muchas\b|muchos\b|muchas\b|Un\b|De\b|En\b|Si\b|SALUD\b)[A-Z][a-zA-ZÑÁÉÍÓÚáéíóúñ]+
排除所有这些词,接受大写词和以大写词开头的词。 我不能加上SALUD这个词来排除,为什么


我在这里尝试应用
\b[A-ZÉÉÉÚñ](([.]?[A-ZÉÉÉÚñ])*[A-ZáÉíúñ])\b
根据您的要求匹配单词1-4。通过增强此正则表达式,没有合理的方法将匹配项从列表5、6中排除。您宁愿使用字典或包含所有“禁止”术语的第二个正则表达式作为替代项来测试匹配。请记住添加开始/结束标记以避免不必要的部分匹配


i、 e.
^(El | La |…| SALUD)$
(用其他黑名单上的单词替换省略号)

我不明白你想要什么。请列出您想要匹配的内容和不想要匹配的内容的示例。此外,关于逻辑OR的使用,tegex也有一些基本错误:您需要使用括号。此外,您的正则表达式长得离谱——只显示尽可能少的术语来说明问题。看看你有什么确实排除了“萨鲁德”作为一个匹配。我将匹配“SALUD”中的“ALUD”,并且不会排除“SALUD”。另外,值得注意的是,你的正则表达式中有很大一部分不包括所有小写的单词,这些单词都不会与正则表达式匹配。首先,感谢并抱歉我的英语和简短的mesagge。我需要的是:1-匹配所有大写字母2-匹配所有单词的首字母大写字母3-匹配所有单词的首字母大写字母和字母之间的点,如F.M.I 4-包括这个字母áèíóèÍÓÚñ5-排除首字母大写的单词列表,这样:En La El Los Ese 6-排除所有字母大写的单词列表,比如Salud,当我把这个字母包括在nfc中时,我想说匹配的单词可以有这些字母,比如Súarezt指定代码点的方式;据我所知,每个变音字符都有一个等价的nfd表示。无论正则表达式匹配的字符串的实际表示形式是什么,正则表达式引擎都有责任确保在不同的规范化策略下匹配等价的代码点;如果由于nfc/nfd差异而存在不匹配,则始终可以通过将等效码点序列指定为macthing备选方案来进行补救;不可否认,这会变得很糟糕。你必须将字符串转换为NFC才能工作。将模式转换为NFD将不起作用,否则您的角色类将变得扭曲。正则表达式引擎也无法为您执行此操作。此外,由于这是西班牙语,OP似乎忘记了
ü
Ü
也可能发生。使用Unicode正则表达式属性,例如
\pL
或甚至
\X
,通常可以更好地处理这类问题。