Здесь происходит несколько проблем.
Последовательность символов .*?
не имеет никакого особого значения в тексте замены, только в исходном поиске.Таким образом, включение этого в текст замены заменяет эти точные символы обратно.Если вы намереваетесь вернуть тот же текст, который был там изначально, вам нужно capture
это так же, как и с текстом placeholder
.
Во-вторых, синтаксис для вставки захваченного текстаобратно \1
или $1
;$(1)
также не является специальным и просто вводит эти символы напрямую.
Чтобы расширить исходный пример, вы хотите захватить первый .*?
, а также второй, и изменить текст замены в соответствии с:
Найти: <input(.*?)placeholder="(.*?)"
Заменить: <input$1placeholder="$2" aria-label="$2"
Обратите внимание, что первый захват пронумерован 1
, второй 2
и т. Д.