Notepad++:如果文本文件中第 4 至第 8 个字符包含“B490”,则替换第 10 个字符

Notepad++:如果文本文件中第 4 至第 8 个字符包含“B490”,则替换第 10 个字符

我需要在第 10 至 31 位之间搜索“FE45”,然后将第 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

相关内容