正则表达式匹配除特定值之外的一个或多个字母的序列

时间:2010-05-13 21:08:01

标签: regex regex-negation

寻找一些正则表达式的帮助来执行以下操作:

  • 必须是Alpha Char
  • 必须至少为1个字符
  • 不得为特定值,例如!=“默认”

感谢您的帮助, 戴夫

2 个答案:

答案 0 :(得分:2)

使用否定前瞻:

^(?!Default)[a-zA-Z]+$

答案 1 :(得分:0)

分两步解决这个问题:

  1. 与正则表达式[a-zA-Z]+进行比较,这意味着“来自a-z或A-Z的一个或多个字母
  2. 如果通过该测试,请在您要防范的特定值列表中查找。
  3. 尝试将这两个测试塞进一个你不理解的复杂正则表达式是没有意义的。正则表达式的一个好的经验法则是,如果你不得不问某人如何做,你应该努力使用最简单的解决方案。如果您不理解正则表达式,则无法长期维护代码。

    在伪代码中:

    if regexp_matches('[a-zA-Z]+', string) && string not in ['Default', 'Foobar', ...] {
        print "it's a keeper!"
    }