m5web
@m5web
Python, js

Как вывести символы запрещенные в регулярном выражении?

Здравствуйте.

У меня есть регулярное выражение проверяющее наличие символов в строке:
$str = "simple string";
preg_match('/^[a-zA-Z\p{Cyrillic}\d\_\-]+$/u', $str)


Делаю проверку регулярки строкой содержащей запрещенные символы:
$str = '/\☭4 слово';
if (preg_match('/^[a-zA-Z\p{Cyrillic}\d\_\-]+$/u', $str) === 0) {
    echo 'Return FALSE';
}

Вопрос: Как вывести символы не принятые(отклоненные) регулярным выражением?
  • Вопрос задан
  • 2491 просмотр
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Если я правильно понял вопрос, то можно заменить на пустоту символы, которые подходят под шаблон. А те что останется и будут "запрещенными символами".

if (preg_match('/^[a-zA-Z\p{Cyrillic}\d\_\-]+$/u', $str) === 0) {
    echo "Некоторые символы не смогли пройти испытание: ".preg_replace('/^[a-zA-Z\p{Cyrillic}\d\_\-]+$/u', '', $str); 
   // по шаблону, не уверен, возможно потребуется убрать границы: ^ и $
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
undefine
@undefine
Senior Software Engineer / PHP
В голову приходит только посимвольный preg_match.
А зачем? Какую задачу пытаешься решить?
Ответ написан
Ваш ответ на вопрос

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

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