|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Kostya Altuhov 2:5030/181 06 Dec 2002 03:09:46 To : Victor Wagner Subject : Работа с HTML -------------------------------------------------------------------------------- 03 Dec 02 18:02, you wrote to Artem Chuprina: AC>> Я бы сказал, что для данной задачи достаточно медитации над AC>> perldoc perlre, пока не заметишь \s и ключ /i. VW> Вот я бы сказал, что ты не прав. Потому что там будет в одной html-ке VW> <input name="FOO" value="bar">, а в соседней <input value="bar" VW> name="FOO"> Эта проблема решается, например, таким регекспом: s/(?=[^>]*name=\"FOO\")(<input[^>]*)value=\".*?\"/$1value=\"mybar\"/ig; Также регекспом можно добавить value, если его нет совсем: s/(?=[^>]*name=\"FOO\")(?![^>]*value)<input/<input value=\"mybar\"/ig; VW> А завтра дизайнер захочет, чтобы у инпутов с class="edit" значения VW> подставлялись, а с class="noedit" - нет, причем class он будет втыкать VW> в любое из трех возможных мест относительно name и value. Это решается вставкой еще одного look-ahead: (?=[^>]*class=\"edit\") Kostya --- * Origin: trust no one (2:5030/181) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/22663defdcf8.html, оценка из 5, голосов 10
|