RegEx для исключения конкретной строковой константы

Можно ли использовать регулярное выражение для соответствия любой строке, кроме определенной строковой константы, скажем, «ABC»? Можно ли исключить только одну конкретную строковую константу? Спасибо за помощь заранее.

Вы должны использовать отрицательное утверждение.

(?!^ABC$) 

Например, вы можете использовать следующее.

 (?!^ABC$)(^.*$) 

Если это не работает в вашем редакторе, попробуйте это. Он проверен на работу в ruby ​​и javascript:

 ^((?!ABC).)*$ 

Это непросто, если у вашего механизма regexp нет особой поддержки. Самый простой способ – использовать параметр отрицательного соответствия, например:

 $var !~ /^foo$/ or die "too much foo"; 

Если нет, вы должны сделать что-то злое:

 $var =~ /^(($)|([^f].*)|(f[^o].*)|(fo[^o].*)|(foo.+))$/ or die "too much foo"; 

Это в основном говорит «если он начинается с не- f , остальное может быть любым: если оно начинается с f , non o , то остальное может быть любым, иначе, если оно начнется fo , следующий символ лучше не будет другим o “.

В .NET вы можете использовать группировку в своих интересах следующим образом:

http://regexhero.net/tester/?id=65b32601-2326-4ece-912b-6dcefd883f31

Вы заметите, что:

 (ABC)|(.) 

Захватит все, кроме ABC во 2-й группе. Круглые скобки окружают каждую группу. Таким образом, (ABC) является группой 1 и (.) Является группой 2.

Поэтому вы просто возьмете вторую группу, как это, взамен:

 $2 

Или в .NET посмотрите на коллекцию групп внутри classа Regex для получения большего контроля.

Вы также должны сделать что-то подобное в большинстве других реализаций регулярных выражений.

ОБНОВЛЕНИЕ: я нашел гораздо более быстрый способ сделать это здесь: http://regexhero.net/tester/?id=997ce4a2-878c-41f2-9d28-34e0c5080e03

Он по-прежнему использует группировку (я не могу найти способ, который не использует группировку). Но этот метод более чем в 10 раз быстрее, чем первый.

Вы можете использовать негативный просмотр или что-то вроде этого:

 ^([^A]|A([^B]|B([^C]|$)|$)|$).*$ 

Может быть, это может быть немного упрощено.

Попробуйте это регулярное выражение:

 ^(.{0,2}|([^A]..|A[^B].|AB[^C])|.{4,})$ 

Он описывает три случая:

  1. менее трех произвольных символов
  2. ровно три символа, в то время как
    • первый не является A , или
    • первый – A а второй – не B , или
    • первый – это A , второй B а третий – не C
  3. более трех произвольных символов
  • regex, извлечь строку NOT между двумя скобками
  • regex, чтобы совместить слово с уникальными (не повторяющимися) символами
  • Есть ли способ превратить вредоносный код в регулярное выражение?
  • Режимы нулевой длины и бесконечные совпадения?
  • Регулярное выражение для пар синтаксического анализа имени
  • Разница между \ b и \ B в регулярном выражении
  • Как сопоставить любой символ в нескольких строках в регулярном выражении?
  • Не удается избежать обратного слэша с помощью регулярного выражения?
  • Ссылка. Что означает это регулярное выражение?
  • Регулярное выражение для соответствия формату времени HH: MM
  • Почему диапазон работает так, как ожидалось?
  • Interesting Posts

    «Сгоревшие» пиксели на TFT-мониторе

    Протокол WebSockets vs HTTP

    Вычислите новую координату x метров и y gradleус от одной координаты

    Стоит ли инициализировать размер коллекции List , если размер его разумно известен?

    Ошибка: выполнение выполнено для задачи: app: dexDebug. com.android.ide.common.process.ProcessException

    Как я могу использовать два внешних ключа для одной модели в Django?

    Bootstrap 4: Uncaught ReferenceError: Popper не определен

    Возврат частичного просмотра и JSON из ASP.NET MVC Action

    Получить текст после элемента span с помощью jquery

    Где «Режим браузера» ушел из средств разработки Internet Explorer 11?

    Почему код целочисленного кода дает неверный ответ?

    Не распознан жесткий диск, пароль администратора супервизора

    Java: Instanceof и Generics

    Как программно включить разрешения автозапуска и плавающего windows, Как найти, какой телефон необходимо использовать для автоматического запуска кода?

    отключить колесо мыши на элементах управления в wpf

    Давайте будем гением компьютера.