|
|
|
| Здраствуйте! Не могу составить регулярку, которая отбирает из сотен ссылок в массиве типа:
*http://mysite.ff
*http://site.ru
*http://difsite.fk
*news/index.php?бла=блаблабла
*mailto:admin@true.vom
*guestbook
все внутренние ссылки сайта http://site.ru. Тоесть из вышеприведённого списка условию соответствует:
**http://site.ru
**news/index.php?бла=блаблабла
**guestbook
Делаю поиск. Если не делать такой проверки, под поиск попадут не конкретный сайт, а почти все сайты мира по принципу домино :)
Спасибо! | |
|
|
|
|
|
|
|
для: nax
(26.11.2007 в 15:10)
| | Типа такого
<pre>
<?
$t="*http://mysite.ff
*http://site.ru
*http://difsite.fk
*news/index.php?бла=блаблабла
*mailto:admin@true.vom
*guestbook";
$r=preg_replace("#(http://[^site\.ru]|mailto:).+?\n#is","",$t);
print str_replace("*","",$r);
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(26.11.2007 в 16:17)
| | Неправильно вопрос я сформулировал. Но ваш вариант переделал, работает, спасибо большое!! | |
|
|
|
|
|
|
|
для: Faraon
(26.11.2007 в 16:17)
| | [^site\.ru] - значит не "не site.ru", а "не какая_либо_из_перечисленных_букв"...
Соответственно правильно работать это не может.
Ну а вместо \n, надо было, наверное, поставить \s или хотя бы пробел.
str_replace("*","",$r) - заменит все звездочки.. в том числе из относительных урлов. Почему бы не внести ее в рег. выражение? | |
|
|
|
|
|
|
|
для: kasmanaft
(26.11.2007 в 18:02)
| | Да не вопрос, думал очень быстро, работы много :)
Насчет \n можно было как вы сказали, но я решил так :)
А насчет звездочек, я предположил, что автору их надо было тоже убрать | |
|
|
|