|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Roman =KRoN= Karshiev 2:5020/400 16 Jul 2002 20:04:51 To : Andrey Sapozhnikov Subject : Re: Регексп - замена по хешу. -------------------------------------------------------------------------------- c:\>deep.exe Andrey Sapozhnikov wrote to Dmitry Koteroff on Tue, 16 Jul 2002 15:01:30 +0000 (UTC): AS> Для более-менее существенного списка слов (а судя по коду из AS> оригинала, заменяются именно слова вне тегов и не ссылки) проще и AS> быстрее одним единственным регекспом. Hайдется слово в %abbr, так AS> заменится - AS> нет, так останется неизменным: Да, суть вопроса ты понял точно! :) Hо... AS> s/(<a\s.*?<\/a>|<.*?>|\b\w+\b)/exists $abbr{$1} ? "<acronym AS> title=\"$abbr{$1}\">$1<\/acronym>" : $1/gse; У тебя выделяются слова ограниченные пробелом, но кроме пробела может быть и знак препинания и вот, например, самая сложная ситуация... Точка может быть как разделителем (конец предложения) - тогда её включать нельзя и как составная часть ключевого слова (Harrer GR.3). Опять же, хочется, чтобы и пробел можно было иметь в ключевых словах (Пилотажная группа "Русские витязи"). Перебирая по циклу такое, в принципе, осуществить можно. Как быть с одним регекспом - не знаю :-/ Пока играю с вариантом с генерацией функций. ....Глубина-глубина, я не твой... =KRoN=, http://kron.da.ru, ICQ#4886816 --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/113469561d5de.html, оценка из 5, голосов 10
|