我有一个STRING
" wordride plain fire"
我尝试用正则表达式替换:
(?>(word)|\G(?<!^))\K\S
$1$2$0
在Notepad ++中,它不会更改文本,但它可以在regex101(https://regex101.com/r/aI6gE1/2)中使用,其中我替换word
之后的字符,如下所示
wordwordide plain fire
wordwordwordde plain fire
wordwordwordworde plain fire
wordwordwordwordword plain fire
wordwordwordwordwordwordplain fire
wordwordwordwordwordwordwordlain fire
你可以帮我看看错误,或者为了这个目的在Notepad ++中给我一个解决方法:在&#34; word&#34;之后替换字符串使用未包含在匹配组中的组
逐个字符请帮帮我
答案 0 :(得分:1)
答案是肯定的,只有借助PythonScript插件才能使用Notepad ++ BUT 。
Get the plugin ready,并创建以下脚本:
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)
^(word)(.+)
模式将在其开始时将word
的行与第1组匹配,并将该行的所有其余部分匹配到第2组。
"{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))])
会将第2组中的每个字符替换为第1组中的值。
本文:
word1
word1 2
wordride plain fire
将变为:
注意:您可以通过调整(修改)word
模式来控制word
替换(.+)
后的字符数。
答案 1 :(得分:0)
很难准确理解你想要做什么,但以下是基于你的例子:
^((word)+).
$1$2