Python 与模式匹配但不包含某些单词的字符串
我正在寻找一个正则表达式,它匹配具有特定模式的单词(见下文),但不包含三个特定单词中的一个 模式是Python 与模式匹配但不包含某些单词的字符串,python,regex,Python,Regex,我正在寻找一个正则表达式,它匹配具有特定模式的单词(见下文),但不包含三个特定单词中的一个 模式是 [a-zA-Z0-9_~+-]{1,64} 我不想包含在整个单词中的单词是“TEST”、“SPECIFIC1”和“SPECIFIC2” 到目前为止,我发现一个正则表达式与这些词不匹配: ((?!(TEST|SPECIFIC1|SPECIFIC2)).)* 但我找不到如何组合这两个正则表达式 例如: TEST won't match TES$ won
[a-zA-Z0-9_~+-]{1,64}
我不想包含在整个单词中的单词是“TEST”、“SPECIFIC1”和“SPECIFIC2”
到目前为止,我发现一个正则表达式与这些词不匹配:
((?!(TEST|SPECIFIC1|SPECIFIC2)).)*
但我找不到如何组合这两个正则表达式
例如:
TEST won't match
TES$ won't match
SPECIFIC1 won't match
NON-SPECIFIC2 won't match
SPECIFIC2 won't match
MATCHES will match
test will match
有人有想法吗?如果用
^
和$
包围表达式,则可以将反向前瞻与角色类一起完成此操作
^((?!(TEST|SPECIFIC1|SPECIFIC2))[a-zA-Z0-9_~+-]){1,64}$
示威。注意,这使用了标志global和multiline,因此为了演示的目的,每行可以有一个匹配项
如果没有
^
和$
的话,就可以移动模式,以避免匹配禁止的字符串。更容易匹配您想要的所有内容,然后编写一个条件。不幸的是,我只有一个正则表达式来完成这项工作,这就是代码。它需要一个正则表达式通常在StackOverflow上发布一个复制代码来展示问题是礼貌的,它使人们更容易帮助你。只是为了一个正则表达式。。。。谢谢,但是这个正则表达式将匹配其中带有“TEST”的单词,因为TEST同时更新了正则表达式和link,所以它与TEST不匹配。