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

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

Изобразил стратегический вариант)


#<a[^>]*?\shref\s*=\s*[^\w]?(https?:\/\/(www\.)?oursite\.com/)?(?!https?:)/?([^\s>'\"]+)[^>]*?>#ism

Что насчёт href= href= - множественных href в тегах - это уже конкретный изврат и форс-мажор - в данном случае эта регулярка выгребет первый href, а для конкретного случая проще будет написать специальный разборщик

jumash добавил 24.07.2009 в 09:58

joost:
что значить это?

Любой символ кроме >

[Удален]
#42

jumash, вот чествно скажу, что такие регулярки Я считаю признаками говнокода =))) ибо поправить еее!! сложнее чем мою, сложно будет вспомнить что там и как там, а читать такие вещи остаточно сложно. поэтому я люблю простые алгоритмы типа просто поиска всех ссылок + последующая фильтрация через тримминг боковых кавычек ..

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

Ну не знаю что тут сложного :)

Тут или знаешь их или не знаешь :)

Тем более что если запутаешься - можно легко написать новую за короткое время

Да и читать просто весьма

Тег начинается с a, идём до первого встреченного href, подразумеваем наличие пробелов, смотрим на присутствие нашего сайта, если нет - игнорируем любые другие сайты, потом гребём всё внутри href кроме пробелов и кавычек (тут косяк может быть если урл кривой и кавычки внутри), потом идём до конца тега

Весьма простая :) Всего один забегайчик)

[Удален]
#44

jumash, поспорил бы, да по делам надо уходить срочно =)))) кстати регуярка схавает в левую часть вот это <a name='sdlad'>asdasdas</> .... <a href="

не критично, но я считаю такое непредсказуемое поведение регулярки - ошибкой :) так сказать нотис уровня.

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

Возвращайся и пополемизируем ещё :) Для меня они больная тема - в Perl-парсерах)))

Не схавает, я ещё немного поменял её)

[Удален]
#46

а весьма простой даже говнокод начинающего программиста, однако копаться в нем не всегда хочется :)

bearman добавил 24.07.2009 в 10:06

ы

Последний раз редактировалось jumash, Сегодня в 12:02. Причина: Добавлено сообщение

не честно менять пост =))

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

Я пару символов добавил и цитату :) Торопился весьма и забыл что может быть khref и убрал два слеша после https?:

DyaDya
На сайте с 11.04.2007
Offline
147
#48

В общем, самое оптимальное решение всё-таки - это:

Регулярка на поиск ВСЕХ ссылок.

- Универсально и просто. Можно потом при желании и все внешние ссылки найти, и все внутренние, и все ссылки на определённый сайт - не переписывая регулярок!

- Плюс ошибок будет меньше, так как выглядит гораздо проще. А кстати, где она? ;)

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
J
На сайте с 02.02.2009
Offline
53
#49

#<a[^>]*?\shref\s*=\s*[^\w]?\/?([^\s>'\"]+)[^>]*?>#ism

ewg777
На сайте с 04.06.2007
Offline
225
#50

Регулярка на оценку...

'/<(a.*) href=\"(.*?)\"(.*)<\/a>/'

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