Регулярное выражение заменить два шаблона в одном матче
Я пытаюсь найти / заменить в блокноте ++, где строка похожа на
<span class="CharOverride-1">Q</span>
С помощью одной команды замены я бы хотел, чтобы результат был
<span class="somethingNew">somethingElse</span>
Это соответствует двум вещам, которые я хочу заменить, но я не знаю, как сформировать замену
(?<=<span class="(CharOverride-1)">)(Q)(?=<\/span>)
Если возможно, я бы хотел не делать что-то подобное
(<span class=")(CharOverride-1)(">)(Q)(<\/span>)
and
\1somethingNew\3somethingElse\5
2 ответа
Вы можете одновременно использовать 3 группы снимков:
Поиск:
(<span class=").*?(">).*?(</span>)
Заменить:
\1somethingNew\2somethingElse\3
Не забудьте установить флажок "регулярное выражение".
Но, если я могу дать вам очень личный совет: не используйте Notepad++...
Регулярное выражение (?<=<span class=")CharOverride-1">Q(?=<\/span>)
uses lookahead and lookbehind to find the string CharOverride-1">Q
, but only where it follows the string <span class="
and is followed by </span>
, использование somethingNew">somethingElse
as the replacement string.