PHP + RegExp, поиск по диапазону символов с исключением

Здравствуйте. Подскажите, пожалуйста, как в php записать регулярное выражение [a-z[^sgm]] (пример нерабочий), т.е. все символы из диапазона a-z кроме символов sgm?

Что-то подобное нашел с символьными классами ( www.php.net/manual/ru/regexp.reference.character-classes.php ): [12[:^digit:]], но мне нужны определенные символы, а не классы.
  • Вопрос задан
  • 5433 просмотра
Решения вопроса 1
lashtal
@lashtal
Выражение называется Double Negative:
[^[:^lower:]sgm]
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Dzuba
@Dzuba
Как-то так: [a-f,h-l,n-r,t-z]
Ответ написан
Dzuba
@Dzuba
А если использовать условные подмаски? Например: (?(?=[a-z])[^sgm])
Ответ написан
yadeveloper
@yadeveloper
hayk
@hayk
Ну вообще-то это не PHP, а PCRE. А там скорее всего такое невозможно.
Ответ написан
Комментировать
conf
@conf
Ruby developer
Можно так попробовать:
/^[^\Wsgm]+$/
Пояснение: \W означает все символы, не входящие в слово, ^ инвертирует этот класс, т.е. \W становится \w, а также исключает из текущего класса следующие за \W символы sgm.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы