[perl] Замена слова в HTML (ламо)
Засунуть в первую скобку "|^" (без кавычек в последнюю - "|$". Кажется так.
$str =~ s|\b$aaa\b|<span style="font-weight: bold; color: black; background-color: red;">$aaa</span>|g;
лучше поставь модификатор /s и тогда начало и конец строки будут только в начале и конце хтмлки где искомого слова быть не может.
Но при дальнейшем рассмотрении обнаружил, что есть еще ряд проблем:
Во-первых регексп, который я написал не совсем делает то, что нужно:
Слово то он выцепляет, но и разделители, по средствам которых он выцепляет, он сжирает. Можно ли проверять граничные условия, но что бы символы не съедались?
Во-вторых \b не катит, т.к. он заменяет даже то, что находится внутри тегов, например, если надо в тексте заменить слово title, то тег <title> тоже перекосячится.
Чего делать то с этим?
сэнькс а лот.
Оставить комментарий
SCIF32
Пока накрапал такой регексп:В строке $str заменяем слово $aaa
$str =~ s/( |\.|,|>)$aaa( |\.|,|<)/<span style=\"font-weight: bold; color: black; background-color: rgb(255,0, 0);\">$aaa<span>/g;
Смысл в том, что бы выделить слово в тексте html страницы. Ну типа как в яндексе "найденные слова".
То что я сделал не будет работать, если слово находится в начале строки, либо в конце. Как поправить регексп?