取代" word"在记事本++中的字符?

时间:2016-06-18 23:04:37

标签: regex notepad++

我有一个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;之后替换字符串使用未包含在匹配组中的组

逐个字符

请帮帮我

2 个答案:

答案 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 

将变为:

enter image description here

注意:您可以通过调整(修改)word模式来控制word替换(.+)后的字符数。

答案 1 :(得分:0)

很难准确理解你想要做什么,但以下是基于你的例子:

  • 查找:^((word)+).
  • 替换为:$1$2