X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Регулярные выражения
kronos
kronos
Topic Starter сообщение 22.8.2009, 22:31; Ответить: kronos
Сообщение #1


Белый веб-мастер
*******


Группа: Active User
Сообщений: 4703
Регистрация: 10.2.2009
Из: Харьков
Поблагодарили: 2629 раз
Репутация:   327  


Бьюсь уже долго с ними, но так ничего и не понял.
Есть задача со стройки вида "e-mail@yandex.ru:password" выделить "e-mail@yandex.ru" (password разной длины, обрезка не канает).
Нашел такой паттерн /(\S+@\S+):/ , удалось им выделить e-mail@yandex.ru с двоеточием в конце. Обрезать не хочется. Как сделать, чтобы выделялась нужная мне часть?

Видел где-то отличный урок по регуляркам, но не могу найти. Именно урок а не документация. Может кто подскажет?

Спасибо заранее.

Туплю..
/(\S+@yandex.ru)/


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FlashBlack
FlashBlack
сообщение 22.8.2009, 22:38; Ответить: FlashBlack
Сообщение #2


Участник
***

Группа: User
Сообщений: 192
Регистрация: 13.8.2008
Из: MINSK
Поблагодарили: 39 раз
Репутация:   10  


ммм

есть 2 варианта:
$aArgs = explode(':', 'e-mail@yandex.ru:password');
echo $aArgs[0];


либо
$aArgs = preg_match("|(.*):(.*)|isU", "e-mail@yandex.ru:password", $aOut);
echo $aOut[1];


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kioto
kioto
сообщение 22.8.2009, 22:46; Ответить: kioto
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 282
Регистрация: 7.5.2009
Поблагодарили: 81 раз
Репутация:   24  


Мал-мал не корректно. Строка =*-@-*/ тоже под Ваше условие подходит. Правильный паттерн для e-mail выглядит так:

/[\w\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,6}$/i

PS: проверки корректности доменной зоны тут нет, но это, как правило, и не требуется. Хотя, можете вместо [a-z]{2,6} написать что-то типа: (ru|su|com|net|...)


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Samborsky
Samborsky
сообщение 24.8.2009, 15:58; Ответить: Samborsky
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 426
Регистрация: 31.7.2008
Поблагодарили: 139 раз
Репутация:   19  


Самый простой способ

/^([^:]+):.+?$/


На словах это так - копируем до первой ":".

Сообщение отредактировал Samborsky - 24.8.2009, 15:59


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужны рерайтеры. Простые и регулярные заказы.
Оплата 30-35 рублей / 1000 символов б.п.
3 13sanek 850 9.5.2017, 12:26
автор: Gadraser


 



RSS Текстовая версия Сейчас: 11.12.2017, 4:22
Дизайн