Notepad++: Заменить 10-й символ, если 4-8-й символ содержит «B490» в текстовом файле

Notepad++: Заменить 10-й символ, если 4-8-й символ содержит «B490» в текстовом файле

Мне нужно найти «FE45» между позициями 10-31, а затем заменить символ между 3-й и 6-й на zzzz.

Пример файла:

123AAA345FE45D
234BBB335DDFFFEEDFE45E
345CCC234ERFDF3FR06G

Мое желание :-)

123000345FE45D
234000335DDFFFEEDFE45E
345000234ERFDF3FR06G

Как мне изменить это выражение, чтобы получить указанные выше результаты?

Заранее спасибо!

решение1

Используйте ()для создания групп, на которые затем можно ссылаться по порядку их появления.

Находить:

(b490)(.{2})(.{5})

Заменять:

\1\2ZZZZZ

решение2

  • Ctrl+H
  • Найти то, что:^...\K...(?=.{0,27}FE45)
  • Заменить:000
  • проверить Соответствие регистру
  • проверить Обернуть вокруг
  • проверить Регулярное выражение
  • НЕ ПРОВЕРЯТЬ. matches newline
  • Replace all

Объяснение:

^           : beginning of line
...         : 3 any character but newline
\K          : forget what we have seen until this position
...         : 3 any character but newline
(?=         : lookahead, zero length assertion, make sure we have after this position
  .{0,27}   : 0 up to 27 any character but newline
  FE45      : literally FE45
)           : end lookahead

Результат для данного примера:

123000345FE45D
234000335DDFFFEEDFE45E
345CCC234ERFDF3FR06G

Связанный контент