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

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

Заранее спасибо!

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

Я использую движок Zend (PHP).

Ответы [ 2 ]

20 голосов
/ 29 июля 2010

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

[a-lp-z]

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

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

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

13 голосов
/ 29 июля 2010

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

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

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

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

    [а-z- [м-о]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...