Страница 1 из 1

Регулярные выражения в ПХП

Добавлено: 03 сен 2010, 02:20
bigfozzy

Добавлено: 22 окт 2010, 05:06
tailor
Подскажите кто-нибудь регулярку, чтобы вытащить ссылку из письма.

Код: Выделить всё

preg_match("/http:\/\/signup.wordpress.com\/activate\/[a-zA-Z0-9]/", $value,  $value2)
Не работает, как ни извращался .там в конце и в начале ссылки 2 черты идут -- с буквами, нужно как-то их отбросить и поместить ссылку в $value2.

c preg_replace чет не получается никак.

Добавлено: 22 окт 2010, 07:20
satih
tailor писал(а):Подскажите кто-нибудь регулярку, чтобы вытащить ссылку из письма.

Код: Выделить всё

preg_match("/http:\/\/signup.wordpress.com\/activate\/[a-zA-Z0-9]/", $value,  $value2)
Не работает, как ни извращался .там в конце и в начале ссылки 2 черты идут -- с буквами, нужно как-то их отбросить и поместить ссылку в $value2.

c preg_replace чет не получается никак.

Код: Выделить всё

preg_match("|http://signup\.wordpress\.com/activate/\w+|", $value,  $value2)
может сработает, дай пример, будет понятней что тебе нужно

Добавлено: 23 окт 2010, 01:49
tailor
вот письмо:

Код: Выделить всё

Thank you for signing up with WordPress.com.

You are one step away from blogging at baycapssin2.wordpress.com.
Please click this link to activate your blog:

http://signup.wordpress.com/activate/c35236aa00bc8cb6

--The WordPress.com Team

(If clicking the link in this message does not work, copy and paste it
into the address bar of your browser.)
разбивая строки через explode(" ", $value); , я получаю строчку

Код: Выделить всё

blog: http://signup.wordpress.com/activate/c35236aa00bc8cb6--
Нужно выдрать эту ссылку:

Код: Выделить всё

http://signup.wordpress.com/activate/c35236aa00bc8cb6

Добавлено: 23 окт 2010, 02:37
rcc0023

Код: Выделить всё

preg_match("/http:\/\/signup.wordpress.com\/activate\/([a-zA-Z0-9]{15,20})/", $value,  $value2);

Добавлено: 28 окт 2010, 15:13
tailor
спасибо, как все просто оказывается :)

Добавлено: 31 окт 2010, 16:02
arp
кстати, у конкурентов есть очень удобная функция для работы с регулярками. было бы очень удобно, если бы тут было что-то подобное :)

Добавлено: 31 окт 2010, 19:01
bigfozzy
тулза по тестированию регулярок ?

сделаем )). Давно собирались, просто где-то забыли.
Спасибо за напоминание, добавлено в TODO

Добавлено: 31 окт 2010, 20:07
satih
RegexBuddy - мега удобный и портабельный (разве что на английском). софтину можно найти на ру-борде например

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

упс, насчет конструктора имел ввиду RegexMagic, того-же автора, просто гораздо больше юзаю RegexBuddy для анализа регулярок. все же всем советую посмотреть ветку ру-борда, там вообще весь софт автора выложен http://forum.ru-board.com/topic.cgi?for ... opic=20823

Добавлено: 01 ноя 2010, 13:03
arp
bigfozzy писал(а):тулза по тестированию регулярок ?

сделаем )). Давно собирались, просто где-то забыли.
Спасибо за напоминание, добавлено в TODO
ну она не только тестирует, но и сама составляет их. очень быстро - не тратится время. ждем :)
satih писал(а):RegexBuddy - мега удобный и портабельный (разве что на английском). софтину можно найти на ру-борде например
спасибо, попробую

Добавлено: 01 ноя 2010, 22:29
bigfozzy
RegexBuddy
официальный сайт:
http://www.regexbuddy.com/

Простой онлайн конструктор регулярных выражений:
http://realcode.ru/regexptester/default.aspx

Добавлено: 01 ноя 2010, 22:32
bigfozzy
http://habrahabr.ru/tag/%D1%80%D0%B5%D0 ... %8F/page1/

еще полезные статьи по регулярным выражениям

Re: Регулярные выражения в ПХП

Добавлено: 17 май 2011, 13:35
Vinny
Дабы не плодить подобных тем, спрошу тут
Как в с помощью preg_replace(); заменить ВСЕ символы отличные от букв и цифр на тире (-)?
И слеш (/)в том числе :)

Re: Регулярные выражения в ПХП

Добавлено: 17 май 2011, 14:37
satih

Код: Выделить всё

preg_replace('`[^a-zA-Z0-9]`', '-', $subject);
ВСЕ символы кроме букв и цифр включают также пробелы и переносы строк, если хочешь все же какие-то разделители оставить, можно так

Код: Выделить всё

preg_replace('`[^a-zA-Z0-9\r\n\s\t]`', '-', $subject);
слеш '/' для регулярок вообще не является специальным символом, незнаю чем он тебя смутил