Как использовать PHP preg_match для проверки строк? - PullRequest
2 голосов
/ 23 июня 2009

Подскажите, пожалуйста, как использовать различные символы, используемые для сопоставления выражений в preg_match функции PHP.

Помимо базовой информации, приведите пример проверки действительного адреса электронной почты и строки, которая не должна содержать /:; {} * &

Ответы [ 5 ]

2 голосов
/ 23 июня 2009

Простой пример. Проверка $ var, которая является строкой, проверяющей и проверяющей символы (от a до z и от A до Z).

<?php
$var = 'hello';
if (ereg("[a-zA-Z]", $var)) {
  echo 'it was typed correctly';
} else {
  echo 'it was not typed correctly';
}
?>

больше примеров синтаксиса регулярных выражений: http://www.regexlib.com/

EDIT:

if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) {

  echo 'email ok';

} else {

  echo 'email not ok';

}

Привет.

1 голос
/ 23 июня 2009

Джефф Этвуд недавно написал в своем блоге ужасов кодирования *1004* о регулярных выражениях. Проверьте " Регулярные выражения для обычных программистов ".

0 голосов
/ 21 августа 2009

Если я даю $ var = 'hello87% ^ $', также возвращая "он был напечатан правильно";

0 голосов
/ 23 июня 2009

Я знаю, что вопрос касается PHP, но моя цель - проиллюстрировать тонкости проверки адреса электронной почты: чтобы проверить, соответствует ли адрес электронной почты RFC 2822 , вы можете использовать модуль Perl E-mail :: Адрес . Посмотрите на источник этого модуля, а также RFC.

0 голосов
/ 23 июня 2009

Чтобы проверить наличие действительного письма, вы можете использовать встроенную функциональность ( filter_var () / FILTER_VALIDATE_EMAIL ) или использовать готовые к использованию хорошие библиотеки, которые соответствуют текущему RFC. PHP: парсинг адресов электронной почты в PHP . Для примеров preg_match () вы можете перейти на веб-сайт php, а полный список параметров регулярных выражений доступен в Wikipedia . Чтобы узнать о Regex, я рекомендую " The Regex Coach ".

...