1

Looking for some help with a Regular Expression to do the following:

  • Must be Alpha Char
  • Must be at least 1 Char
  • Must NOT be a specific value, e.g. != "Default"

Thanks for any help, Dave

4

2 回答 2

2

Use a negative lookahead:

^(?!Default)[a-zA-Z]+$
于 2010-05-13T21:12:02.337 回答
0

分两步解决这个问题:

  1. [a-zA-Z]+与表示“来自 az 或 AZ 的一个或多个字母”的正则表达式进行比较
  2. 如果它通过了该测试,请在您要防范的特定值列表中查找它。

试图将这两个测试塞进一个你不理解的复杂正则表达式是没有意义的。正则表达式的一个好的经验法则是,如果您必须询问某人如何做,您应该尽可能使用最简单的解决方案。如果您不了解正则表达式,您将无法随着时间的推移维护代码。

在伪代码中:

if regexp_matches('[a-zA-Z]+', string) && string not in ['Default', 'Foobar', ...] {
    print "it's a keeper!"
}
于 2011-07-09T05:30:36.227 回答