#php #regex #preg-match
#php #регулярное выражение #preg-match
Вопрос:
Я использую PHP «preg_match». Я хочу напечатать неправильные символы в имени. Как я могу это сделать?
«preg_match» Если есть символы, отличные от разрешенных значений, я хочу напечатать нежелательные символы на экране. Какой тип добавления должен быть в приведенном ниже коде?
МОЙ код:
<?php
$name = "He/llo W or_ld Test=Code";
if( preg_match('/[^a-zA-Z ]/', $name) ){
echo "Unavailable Characters: "; // What changes should be made here?
}
?>
Желаемый результат:
Unavailable Characters: / _=
Комментарии:
1. Вы можете использовать preg_match_all, а затем распечатать коллекцию совпадений
2. @Thefourthbird Как я могу это сделать. Есть ли какой-нибудь пример?
Ответ №1:
Использовать
$name = "He/llo W or_ld Test=Code";
if( preg_match_all('/[^a-zA-Z ]/', $name, $res) ){
echo "Unavailable Characters: " . implode('', $res[0]);
}
Вывод:
Unavailable Characters: / _=
Смотрите демонстрацию PHP
Примечания:
- Используя
preg_match_all
, вы извлекаете все совпадения - Вам нужно передать третий аргумент в
preg_match_all
, чтобы на самом деле сохранить совпадения там (здесь, я передаю$res
) - Вам нужен
implode()
$res[0]
массив, содержащий значения соответствия.