1

我需要一个正则表达式来排除不区分大小写的完全匹配(整个字符串)。如果整个字符串是“United States”(不区分大小写),那么我需要拒绝该字符串。如果只有部分字符串包含“United States”(不区分大小写),那就没问题了。

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

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

这是针对 vBulletin 的,我只允许此表单使用单行正则表达式。

4

2 回答 2

3

您的要求仍然有点模糊,但请尝试

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

在 Regexr 上查看

^锚定到字符串的开头

$锚定到字符串的末尾

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

(?!United States$)负前瞻,使整个表达式失败,如果字符串从头到尾只有“美国”

.{6,}匹配 6 个或更多字符

于 2012-08-16T10:54:39.367 回答
0

为什么是正则表达式?

我会做(在 perl 中):

reject() if (uc($str) eq 'UNITED STATES' or length($str) < 6);
于 2012-08-16T11:44:56.767 回答