Я не могу разобраться с поиском и заменой perl в строке или регулярных выражениях. Может кто-нибудь помочь, пожалуйста?
У меня есть файл, содержащий HTML, и я хочу изменить класс определенных элементов, если они присутствуют в данном наборе (в данном случае хеш-таблица или проверенные поля, которые не прошли проверку). Итак, у меня есть, например, следующее:
<input name="RMAProcess" type="radio" class="inputnormal" value="Good">
и я хочу изменить класс «inputnormal» на значение «inputpink». То, что я пытаюсь сделать, это сделать так, чтобы я соответствовал целому номенклатуре строк, в каком порядке отображаются свойства, так что, например, следующее также будет соответствовать:
<input name="RMAProcess" type="radio" value="Good" class="inputnormal">
Это потому, что Dreamweaver иногда теряет порядок свойств в HTML во время редактирования, поэтому я не могу полагаться на фиксированные позиции для них.
Так что я получаю что-то, что не работает, например:
foreach $key ( keys %FAILED ) {
$infile =~ s/<input type="radio" name="$key" value="$VALUES{$key}" class="([a-zA-Z]+)"/$1inputpink"/gi;
}
Может кто-нибудь помочь мне с этим?
Спасибо.
Редактировать: хорошо, этот вид работает, предполагая, что свойства внутри тегов не перемещаются:
foreach $key ( keys %FAILED ) {
$infile =~ s/(<.{4,10}\ type="radio" name="$key".{1,60}class=")([a-zA-Z]+)"/$1inputpink"/gi;
}
Это нужно сделать сейчас! Спасибо за все ваши ответы.