Регулярное выражение для сопоставления последовательности из одной или нескольких букв, за исключением определенного значения - PullRequest
1 голос
/ 14 мая 2010

Нужна помощь с регулярным выражением для выполнения следующих действий:

  • Должен быть Альфа Чар
  • Должно быть не менее 1 символа
  • НЕ ДОЛЖНО быть конкретным значением, например ! = "По умолчанию"

Спасибо за любую помощь, Dave

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

Используйте негативный взгляд:

^(?!Default)[a-zA-Z]+$
0 голосов
/ 09 июля 2011

Решите это в два шага:

  1. сравнить с регулярным выражением [a-zA-Z]+, что означает "одну или несколько букв из a-z или A-Z
  2. если он пройдет этот тест, найдите его в списке конкретных значений, от которых вы защищаетесь.

Нет смысла пытаться объединить эти два теста в одно сложное регулярное выражение, которое вы не понимаете. Хорошее эмпирическое правило с регулярными выражениями: если вам нужно спросить кого-то, как это сделать, вы должны стремиться использовать как можно более сложное решение. Если вы не понимаете регулярное выражение, вы не сможете поддерживать код с течением времени.

В псевдокоде:

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