首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在记事本++中,用字符替换单词后的字符?

在记事本++中,用字符替换单词后的字符?
EN

Stack Overflow用户
提问于 2016-06-18 23:04:36
回答 2查看 1.1K关注 0票数 2

我有一根绳子

“虚火”

我尝试用正则表达式替换

  • 找到什么:(?>(word)|\G(?<!^))\K\S
  • 替换为:$1$2$0

在记事本++中,它不改变文本,但它在regex101 (https://regex101.com/r/aI6gE1/2)中工作,在word之后替换字符,如下所示

  • 第一次替换:wordwordide plain fire
  • 第二代:wordwordwordde plain fire
  • 第三代:wordwordwordworde plain fire
  • 第四个替代:wordwordwordwordword plain fire
  • 第五代:wordwordwordwordwordwordplain fire
  • 第六代:wordwordwordwordwordwordwordlain fire

你能帮我看到错误或者在记事本++中给我一个解决办法吗:用一个不包含在匹配组中的组替换单词后面的字符串。

请帮帮我

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-13 07:39:27

答案是肯定的,只有在Notepad++ 插件的帮助下才能使用

Get the plugin ready,并创建以下脚本:

代码语言:javascript
复制
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))]))将首先将Group 1值粘贴到结果中(请参见format(match.group(1)),然后"".join([match.group(1) for x in list(match.group(2))])将用组1中的值替换组2中的每个字符。

案文如下:

代码语言:javascript
复制
word1
word1 2
wordride plain fire 

将转化为:

注意事项:您可以通过调整(修改) (.+)模式来控制word之后有多少字符被word替换。

票数 1
EN

Stack Overflow用户

发布于 2016-06-20 10:13:28

很难确切地理解您想要做什么,但是下面的工作是基于您的示例的:

  • 查找:^((word)+).
  • 替换为:$1$2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37902418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档