2012-08-16 70 views
1

我需要RegEx排除不区分大小写的完全匹配(整个字符串)。如果整个字符串是“美国”(不区分大小写),那么我需要拒绝字符串。如果只有部分字符串包含“美国”(不区分大小写),那么它很好。正则表达式排除精确的多字匹配

我还需要字符串的最小长度为6个字符,如果它小于6,它需要拒绝字符串。

由于单词之间存在空格,因此我遇到了麻烦,因为我只需排除该字符串的精确匹配而不是部分匹配。

这是用于vBulletin,我只允许这种形式的单线正则表达式。

+0

(http://whathaveyoutried.com) – tuxtimo 2012-08-16 10:47:50

回答

3

你的要求仍然是一个有点模糊,但尽量

^(?i)(?!United States$).{6,}$ 

看到它here on Regexr

^锚字符串的开始

$锚字符串的结尾

(?i)内嵌选项,使正则表达式不区分大小写

(?!United States$)排除模式,使整个表达式失败,如果字符串是从开始到结束只有“美国”

.{6,}比赛6个或更多字符

+0

谢谢,这似乎按预期方式工作! – ctrlbrk 2012-08-16 11:42:09

0

为什么正则表达式?

我做(在Perl):[?你尝试过什么]

reject() if (uc($str) eq 'UNITED STATES' or length($str) < 6);