Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > регулярка для url`ов


Автор: alligator 27.8.2014, 21:32
Не получается сделать регулярку чтобы соответствовала этим строкам
Код

    [0] => kartaskidok.unicreditbank.ru

    [1] => m.unicreditbank.ru

    [2] => pda.unicredit.ru

    [3] => unicredit.ru

    [4] => unicreditbank.ru

    [5] => www.imbank.ru

    [6] => www.unicreditbank.ru

    [7] => www.unicreditgroup.ru



а этот сайт не захватывала
Код

www.simbank.ru

Делаю так:
Код

$patterns[0] = '/(.+?\.)?(unicredit|imbank)(.*?)?(\..+)/';        $replacements[0] = 'unicreditbank.ru';

Автор: alligator 28.8.2014, 14:45
Получилось так:
Код

$patterns[0] = '/(.+?\.)?(?<!(s))(unicredit|imbank)(.+)/';    $replacements[0] = 'unicreditbank.ru';

Автор: spbnvb 6.11.2014, 10:47
Не пойму смысла этого участка в начале .+? 
.+ - это один или сколько угодно любых символов. А что дает знак вопроса? - но это лирика.

Если это не поиск подстроки в тексте, а именно работа над указанными строками, тогда бы я сделал где то так
([\w.]*)(unicredit|imbank)([\w.]*)
Ну или вариант с тем, чтобы заканчивалось на .ru будет выглядеть так ([\w.]*)(unicredit|imbank)([\w.]*)(\.ru)
Для PHP не забудьте взять строку в \\
НУ или совсем просто (.*)(unicredit|imbank)(.*)

Автор: _zorn_ 6.11.2014, 11:27
Вопросик после квантификатора - отмена жадности

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