Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与模式匹配但不包含某些单词的字符串_Python_Regex - Fatal编程技术网

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不匹配。