Регулярное выражение заменить два шаблона в одном матче

Я пытаюсь найти / заменить в блокноте ++, где строка похожа на

<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.

Другие вопросы по тегам