Регулярное выражение: найдите диапазон за исключением одной буквы или диапазон

Как я могу использовать отрицание в квадратных скобках как исключение, для нахождения, например, все между a-z за исключением диапазон от m-o? [a-z^m-o]?

Между прочим: это не ради этого примера, который я спрашиваю, но смочь исключить диапазоны в диапазонах или даже одни буквы в диапазонах. Я в значительной степени знаю, что в этом примере это может быть вычислено.

Я использую механизм Зенда (PHP).

7
задан Jason Aller 21 August 2019 в 17:39
поделиться

2 ответа

Вы должны быть в состоянии вычислить разницу самостоятельно.

[a-lp-z]

Если механизм regex поддерживает утверждение с опережением, вы можете использовать

(?![m-o])[a-z]

но это, вероятно, будет менее эффективно.

20
ответ дан 6 December 2019 в 05:42
поделиться

В дополнение к тому, что упоминает Кенни:

  1. JDK (по крайней мере) поддерживает этот синтаксис:

    [a-z && [^ m-o]]

  2. Пара движков (включая платформу .NET) поддерживают это:

    [a-z- [m-o]]

13
ответ дан 6 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: