| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Регулярные выражения > Заменить все вхождения,кроме тех,что между тегами |
| Автор: yorc 26.1.2010, 10:38 | ||
| привет всем! поиск дал мне одну ветку, похожую на мой случай, но не совсем: http://forum.vingrad.ru/topic-279589.html поэтому всё же попытаюсь сформулировать вопрос. есть строка $st и есть хэш %k, в котором содержится список слов, которые нужно заменить на специфического вида ссылки (причём ВСЕ их вхождения в строку!) написал вот такой код:
подозреваю, что он, мягко говоря, не самый оптимальный... да и работает плоховато :( дело в том, что зачастую после нескольких проходов в тексте, который УЖЕ содержит ссылки, очередное слово из массива обнаруживается МЕЖДУ ТЕГАМИ уже сформированной ссылки! в связи с этим вопрос: как можно это всё переписать более грамотно с помощью регекспов и, самое главное, как сделать так, чтобы слово НЕ заменялось на ссылку, если оно найдено МЕЖДУ существующими тегами <a></a> ? всем заранее спасибо за помощь! |
| Автор: sir_nuf_nuf 26.1.2010, 11:44 | ||
Как то так |
| Автор: yorc 26.1.2010, 13:22 |
| спасибо огромное!!! немного исправил, но заработало! обожаю регекспы - только бы ещё научиться их понимать... |