Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Модификация регулярки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: /(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/
xsh
Отправлено: 14 Августа, 2011 - 16:27:36
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Помогите модифицировать данную регулярку
/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/
чтобы она описывала не только домены, но и любые символы что стоят после домена на этой строке через / кроме пробела, т.е. по сути любые урл. Спасибо.


-----
$хикикомори()
goodlook...goodtime...connect... offline...
 
 Top
illy
Отправлено: 14 Августа, 2011 - 17:34:14
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $text="http://dggfdg.ru ftp://tytytghjhj";
  3. preg_match_all('#(https?|ftp)://.*( |$)#mUsi',$text,$v);
  4. for($c=0;$c!=sizeof($v[0]);$c++){
  5. echo $v[0][$c].'<br>';
  6. }
  7. ?>


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
xsh
Отправлено: 14 Августа, 2011 - 17:40:25
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy в твоей регулярке урл ищутся по протоколу по сути, это немного не тот вариант, поскольку у меня исходные url без указания http. так что туда могут попасть и просто слова с латинскими буквами. хотелось бы все же применять ту регулярку
(Добавление)
illy если дописать к той регулярке mUsi она будет забирать всю строку?

(Отредактировано автором: 14 Августа, 2011 - 17:40:50)



-----
$хикикомори()
goodlook...goodtime...connect... offline...
 
 Top
illy
Отправлено: 14 Августа, 2011 - 18:24:05
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




xsh пишет:
если дописать к той регулярке mUsi она будет забирать всю строку?

угу и в случае, если кодировка utf


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
xsh
Отправлено: 14 Августа, 2011 - 18:35:53
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy поясни пожалуйста что означает mUsi, я где то встречал уже Usi но не помню что означает.
'/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi'
так верно?


-----
$хикикомори()
goodlook...goodtime...connect... offline...
 
 Top
illy
Отправлено: 14 Августа, 2011 - 19:06:12
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




U - это на случай если текст в кодировке utf
i - Не различать строчные и прописные буквы.
m - Многострочный поиск.
s - По умолчанию метасимвол '.' не включает в свое определение символ перевода строки. Т.е. для многострочного текста выражение /.+/ вернет только первую строку, а не весь текст, как ожидается. Указание этого модификатора снимает это ограничение.


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
xsh
Отправлено: 14 Августа, 2011 - 20:00:46
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




illy где то я ошибся '/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi' не работает, как сделать чтобы по этой /(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/ регулярке брался не только домен, а вся ссылка, если учесть что все ссылки по одной на строке.
если брать '/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi' то он берет часть url типа "/connect.html" и делает из него домен типа connect.ht не учитывая слеши и то что по 1 урл на строку..


-----
$хикикомори()
goodlook...goodtime...connect... offline...
 
 Top
Alek
Отправлено: 15 Августа, 2011 - 02:08:53
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Март 2011  
Откуда: Набережные Челны


Помог: 0 раз(а)




xsh
PHP:
скопировать код в буфер обмена
  1.  
  2. $site="http://www.site.ru/dindex.php?t=647436";
  3. $site = preg_replace("#(^(http://www\.)?([a-z0-9]+\.[a-z]{2,4})\/?((?![=-])[a-z-0-9-_.?=]+)+?)#i", '<A target=_blank href="$1">$0</A>', $site);
  4. print "Вывод ссылки:$site<br />";
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB