Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Regexp


Автор: _Ghost_ 28.4.2008, 09:53
Добрый день.
есть стока как мне определить это url или emil или вообше что то другое т.е просто набор символов.
вот не как не могу написать регулярку.
p.s пойск не помог.неужели плохо искал?smile

Автор: Feldmarschall 28.4.2008, 10:17
думаю, да. "плохо искал" - это еще мягко сказано
регэксп, котрый находит ссылку или емейл - самый популярный. 
учитывая же, что до сих пор на форуме обсуждается статья недельной давности, посвященная этому опросу - надо обладать очень большим талантом, чтобы не найти =)

Автор: Canarat 28.4.2008, 13:22
Находится все, даже такие монстры:

http://en.wikipedia.org/wiki/Talk:E-mail_address

А большое количество регулярок по темам можно найти здесь:

http://regexlib.com/

Первая же ссылка гугла по запросу "email regular expression"

Автор: knut 28.4.2008, 14:26
проверка на валидность
1. для emil
Код

function  is_email($email){
$regexp = "/^[0-9a-z_]+([_\\.-][0-9a-z_]+)*@([0-9a-z_^]+([\.-][0-9a-z_^]+)*)+\\.[a-z]{2,}$/i";
    if(!preg_match($regexp, $email) ){
        echo "matched email:";
    }

2. для Url
Код

function is_url($url){
if(preg_match('!^((ftp|(http(s)?))://)?(\.?([a-z0-9-]+))+\.[a-z]{2,6}(:[0-9]{1,5})?(/[a-zA-Z0-9.,;\?|\'+&%\$#=~_-]+)*$!i',$url) ){
  echo "Matched url";
}
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)