在记事本++中逐个字符替换“word”之后?

2024-01-29

我有一个 STRING

“wordride 普通火”

我尝试替换为常用表达:

  • 找什么:(?>(word)|\G(?<!^))\K\S
  • 用。。。来代替:$1$2$0

在 Notepad ++ 中,它不会更改文本,但可以在 regex101 中工作(https://regex101.com/r/aI6gE1/2 https://regex101.com/r/aI6gE1/2),其中 i 替换之后的字符word如下

  • 首先替换:wordwordide plain fire
  • 第二次替换:wordwordwordde plain fire
  • 第三次替换:wordwordwordworde plain fire
  • 第四次替换:wordwordwordwordword plain fire
  • 第五次替换:wordwordwordwordwordwordplain fire
  • 第六次替换:wordwordwordwordwordwordwordlain fire

您能帮助我查看错误或为此目的在 Notepad ++ 中为我提供解决方法吗:使用不包含在匹配组中的组逐个字符替换“word”之后的字符串

请帮我


答案是肯定的,用Notepad++就可以做到BUT仅在 PythonScript 插件的帮助下。

准备好插件 https://stackoverflow.com/questions/37300462/notepad-find-replace-number-with-increment-value/37300757#37300757,并创建以下脚本:

import re

regex = r"^(word)(.+)"

def process_match(match):
    return "{0}{1}".format(match.group(1), "".join([match.group(1) for x in list(match.group(2))]))
editor.rereplace(regex, process_match)

The ^(word)(.+)模式将匹配一行word开始时进入第 1 组,其余所有车辆进入第 2 组。

The "{0}{1}".format(match.group(1), "".join([match.group(1) for x in list(match.group(2))]))将首先将组 1 值粘贴到结果中(请参阅format(match.group(1)) 进而"".join([match.group(1) for x in list(match.group(2))])将用第 1 组中的值替换第 2 组中的每个字符。

本文:

word1
word1 2
wordride plain fire 

将变成:

NOTE: 可以控制后面有多少个字符word替换为word通过调整(修改)(.+)图案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在记事本++中逐个字符替换“word”之后? 的相关文章

随机推荐