|
|
|
| Привет. Помогите плиз составить рег выражение для определения есть ли в строке такие вещи как www.blablabla.ru/com и тд либо blablabla.ru/com и тд либо http://www.blablabla.ru/com и тд НО за исключением тех, что содержат вместо blabla допустим doors либо avto-mir | |
|
|
|
|
|
|
|
для: ~LINA~
(02.12.2008 в 11:11)
| | Если под ru/com и тд вы имеете ввиду домены первого уровня то так
<?php
$srch = "blabla";
$str = " строка www.blabla.com blabla.ru строка";
if(preg_match("#(http://)?(www.)?".$srch."\.[a-z]{2,6}#i", $str))
print "Есть такой адрес";
else
print "Нет такого адреса";
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(02.12.2008 в 12:48)
| | Спасибо, почти.. но не совсем то.. Мы должны наоборот найти есть ли в тексте любые адреса, кроме тех что содержат как домен второго уровня определенные слова, хотя бы два - например doors либо avto-mir | |
|
|
|
|
|
|
|
для: ~LINA~
(02.12.2008 в 13:16)
| | можно "заглянуть вперёд" с помощью подмаски *(?=....) или (?!....)
'#\b(http://)?(www\.)?(?!avto-mir|doors)[\-\.0-9a-z]+#i'
|
но конкретно это выражение не очень подходит для нахождения ссылок | |
|
|
|
|
|
|
|
для: ~LINA~
(02.12.2008 в 13:16)
| | Можно попробовать как-то так
<?php
$srch = "avto-mir;doors";
$ex = explode(";",$srch);
$str = " строка http://avto-mir.ru doors.ru test.ru строка";
if(preg_match("#(http://)?(www\.)?(?<!".$ex[0]."|".$ex[1].")\.[a-z]{2,6}#i", $str))
print "Есть такой адрес";
else
print "Нет такого адреса";
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(02.12.2008 в 14:07)
| | Работает как нужно) Спасибо за помощь | |
|
|
|