我有一个 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(使用前将#替换为@)