Регулярки на пхп

[Удален]
#21
ewg777:
Мы и так знаем, что ты аццкий.

еще рас самоутвердился =))

J
На сайте с 02.02.2009
Offline
53
#22

:D Я тоже пишу без проверки, - но читаю ТС и не хвастаюсь о своей деятельности :)

Остальное, наверное, тоже надо подправить?:)

[Удален]
#23
jumash:
:D Я тоже пишу без проверки, - но читаю ТС и не хвастаюсь о своей деятельности :)

Остальное, наверное, тоже надо подправить?:)

читайте дальше :)

нет, там остальное верно.

bearman добавил 23.07.2009 в 22:49

попробую доказать что твои регулярки - гумно.

<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))([^\s]+)\1.*?>

<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))(http:\/\/(www\.)?oursite.com)?([^\s]+)\1.*?>

дабы тоже не обольщался ;)

bearman добавил 23.07.2009 в 22:49

*ваши регулярки гавно, дабы Вы тоже не обольщались :)

bearman добавил 23.07.2009 в 22:49

** типа я правила приличия вспомнил

bearman добавил 23.07.2009 в 22:54

ой. я был приятно удивлен, что Ваши регулярки несработали вообще.

<?
$txt = "<a href=page.php>
<a title=page href=page.php>
<a href = page.php>
<a href=\"page.php\">
<a href='page.php'>
<a href=http://site.com/page.php>
<a href=http://www.site.com/page.php>
<a >
here goes BAD CONTENT!!!!! ARGH!!!! PYSHPYSHPYSH!!! 1111
<a href=http://site.com/page.php target=_blank>
<a href=http://oursite.com/page.php>
<a href=http://www.oursite.com/page.php>";

echo "<pre>dude variant<hr/>";
preg_match_all('#<a [^>]*?href\s*=\s*(\S+?)[>\s]#ism',$txt,$links);
print_r($links[1]);

echo "Jumash variants<hr>";
preg_match_all("#<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))([^\s]+)\1.*?>#ism",$txt,$links);
print_r($links[2]);

echo "<hr>";
preg_match_all("#<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))(http:\/\/(www\.)?oursite.com)?([^\s]+)\1.*?>#ism",$txt,$links);
print_r($links[2]);

поправьте, если я не так их трактовал в коде.

я там чуток поднасрал в хтмл, мои работают дальше, а ваши даже в лучшем случае(если бы работали), насобирали бы гавно а не ссылки. я уверен на 100%.

тут можно позырить онлайн http://94.31.169.103/regex.php

J
На сайте с 02.02.2009
Offline
53
#24

http://gskinner.com/RegExr/ - тут проверял

Чуть позже в пыхе проверю

И кстати - можно как-то поадекватнее общаться? Такое чувство будто со школотой веду беседу а не с программистом.

[Удален]
#25
jumash:
http://gskinner.com/RegExr/ - тут проверял

Чуть позже в пыхе проверю

И кстати - можно как-то поадекватнее общаться? Такое чувство будто со школотой веду беседу а не с программистом.

насчет общения да, простите, ибо серч тренерует в этом вопросе неплохо. школоты тут хватает с головой ..

J
На сайте с 02.02.2009
Offline
53
#26

А, ну правильно

Пыха не реагирует на \1


echo "Jumash variants<hr>";
preg_match_all("#<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))([^\s>'\"]+)(['\"]?).*?>#ism",$txt,$links);
print_r($links);

echo "<hr>";
preg_match_all("#<a.*?href\s*=\s*(['\"]?)(?!http:\/\/(?!(www\.)?oursite\.com))(http:\/\/(www\.)?oursite.com)?([^\s>'\"]+).*?>#ism",$txt,$links);
print_r($links);

Можно допилить в целом до идеала - но тут сомнительный выйгрыш будет)

[Удален]
#27

jumash, допили ;) и увидишь про что я говорил ... не поленись ;) интересный результат получишь

bearman добавил 23.07.2009 в 23:59

пыха то реагирует, но "\1" не то что она хочет насколько я понимаю

"\\1" или еще лучше "\$1" юзать)

J
На сайте с 02.02.2009
Offline
53
#28

не, такое тоже не катит - попробовал. Я в перле уже давно и привык что там как-то всё по PCRE-шному, так сказать :)

завтра допилю, спать хочется уже

Интересно прям стало

[Удален]
#29
jumash:
не, такое тоже не катит - попробовал. Я в перле уже давно и привык что там как-то всё по PCRE-шному, так сказать :)

завтра допилю, спать хочется уже
Интересно прям стало

скажу на словах.

когда ты делаешь этот поиск ..

<a .*?href

то если попадется

<a name="fakeanchor">лялял</a><a href="..

тут то у тебя и будет сожрано все вот это

<a name="fakeanchor">лялял</a><a href=", оно и попадет под .*?, ибо ты ГОВОРИШЬ ИЩИ <a ПОТМО ХРЕН ЗНАЕТ ЧТО, ПОТОМ href. в данной ситуации я думаю что это будет не критично, а вот если надо будет анкоры собрать или тп, или эту часть(что попало под .*?) надо будет анализировать, это произведет достаточно серъезную ошибку, причем трудноуловимую ..

поэтому я и использовал <a [^>]+?

чтобы явно сказать, что при поиске не надо выходить за пределы <a ..>

какбы просто мелочь, но достаточно коварная.

Bitman
На сайте с 05.07.2009
Offline
112
#30

preg_match_all("#href[\s]*=[\s]*\\\?\"?'?(.*?)\\\?[\"'\s]#is",$content,$href_array);

Северный лес (https://euro-vagonka.by) DREW (https://drew.by) AvtoDrive (https://avtodrive.by)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий