2016-06-07 90 views
1

我正在寻找与特定模式相匹配的话,其一个正则表达式(见下文),但其不包含的三个特定词语字符串模式匹配的和不包含某些字

一个

的图案是

[a-zA-Z0-9_~+-]{1,64} 

,我不希望被包含在整个单词的词是“测试”,“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 

是否有人有想法?

+0

匹配你想要的任何东西比较容易,然后写出一个条件。 – Maroun

+0

不幸的是,我必须只有一个正则表达式来完成这项工作 –

+0

这就是代码。它需要一个正则表达式 –

回答

2

如果用^$包围表达式,则可以将负向视角与角色类一起放置以实现此目的。

^((?!(TEST|SPECIFIC1|SPECIFIC2))[a-zA-Z0-9_~+-]){1,64}$ 

Here's一个示范。请注意,这将使用全局标志和多行标志,因此我可以为每个行进行一次匹配演示。

如果没有^$该模式可以被移动以避免匹配被禁止的字符串。

+1

谢谢,但是这个正则表达式将与单词中的“TEST”相匹配,因为testTESTtest –

+0

更新了正则表达式和链接,使其与* testTESTtest *不匹配。 – Raniz

+0

它正在工作!非常感谢你 –

相关问题