Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как работает регулярное выражение?
 
 автор: ДобрыйУхх   (01.02.2010 в 21:54)   письмо автору
 
 

Привет всем!

Подскажите, почему срабатывает первая ветвь echo "Все верно";
может я не все понимаю, но вот это условие [0-9a-z_]+ должно искать в строке только цифры и лат буквы?


$email = "som\e#body@server.ru";
$pattern = "|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i";

if (preg_match($pattern, $email))
{
    echo "Все верно";

}
else
{
    echo "Неверный емайл";
}

  Ответить  
 
 автор: ~AquaZ~   (02.02.2010 в 14:46)   письмо автору
 
   для: ДобрыйУхх   (01.02.2010 в 21:54)
 

Реально фигня какая-то...
Но выражение тоже неправильное :)

  Ответить  
 
 автор: Trianon   (02.02.2010 в 18:33)   письмо автору
 
   для: ДобрыйУхх   (01.02.2010 в 21:54)
 

должна искать в любой части строки

  Ответить  
 
 автор: big-trot   (02.02.2010 в 19:04)   письмо автору
 
   для: ДобрыйУхх   (01.02.2010 в 21:54)
 

Ваше выражение находит body@server.ru, поэтому срабатывает первая ветвь.

Вы пишете
>
>....но вот это условие [0-9a-z_]+ должно искать в строке только цифры и лат буквы?
>


Оно все правильно ищет.

  Ответить  
 
 автор: ДобрыйУхх   (02.02.2010 в 19:04)   письмо автору
 
   для: ДобрыйУхх   (01.02.2010 в 21:54)
 

да-да, Спасибо, кстати, ошибка из учебника, вот поправил ниже, теперь работает)))


$pattern = "|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i";

  Ответить  
 
 автор: heed   (02.02.2010 в 19:33)   письмо автору
 
   для: ДобрыйУхх   (02.02.2010 в 19:04)
 

<pre><?php

$p 
'#^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$#i';

$txt = array(
'john@doe.ru',
'mister@john-doe.ru',
'mr.j@doe.ru',
'_@........aa',
'_@^^^^^^^^^^^^.bb'
);

print_rpreg_grep($p$txt) );

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования