Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Есть ли в строке www-адрес
 
 автор: ~LINA~   (02.12.2008 в 11:11)   письмо автору
 
 

Привет. Помогите плиз составить рег выражение для определения есть ли в строке такие вещи как www.blablabla.ru/com и тд либо blablabla.ru/com и тд либо http://www.blablabla.ru/com и тд НО за исключением тех, что содержат вместо blabla допустим doors либо avto-mir

  Ответить  
 
 автор: AcidTrash   (02.12.2008 в 12:48)   письмо автору
 
   для: ~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 
"Нет такого адреса";
?>

  Ответить  
 
 автор: ~LINA~   (02.12.2008 в 13:16)   письмо автору
 
   для: AcidTrash   (02.12.2008 в 12:48)
 

Спасибо, почти.. но не совсем то.. Мы должны наоборот найти есть ли в тексте любые адреса, кроме тех что содержат как домен второго уровня определенные слова, хотя бы два - например doors либо avto-mir

  Ответить  
 
 автор: xx77   (02.12.2008 в 13:59)   письмо автору
 
   для: ~LINA~   (02.12.2008 в 13:16)
 

можно "заглянуть вперёд" с помощью подмаски *(?=....) или (?!....)
'#\b(http://)?(www\.)?(?!avto-mir|doors)[\-\.0-9a-z]+#i'

но конкретно это выражение не очень подходит для нахождения ссылок

  Ответить  
 
 автор: AcidTrash   (02.12.2008 в 14:07)   письмо автору
 
   для: ~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 
"Нет такого адреса";
?>

  Ответить  
 
 автор: ~LINA~   (02.12.2008 в 14:34)   письмо автору
 
   для: AcidTrash   (02.12.2008 в 14:07)
 

Работает как нужно) Спасибо за помощь

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования