首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Notepad++在文本前后查找和替换

Notepad++在文本前后查找和替换
EN

Stack Overflow用户
提问于 2014-03-11 10:36:16
回答 2查看 1.6K关注 0票数 0

我有大约520行看起来有点像这样:

**[遗忘]。父母:[慢戳][斯洛布罗],[斯诺拉克斯] **[魅力]。家长:[柯顿] **[诅咒]。父母:[慢波]、[斯洛布罗]、[斯洛金]、[特卫格]、[格罗特尔]、[托特拉]、[铁罗森]、[铁刺] **[忍受]。父母:[Shieldon],[Bastiodon]

我想用F&R来改变“父母”之后的每一个例子(例如,不是健忘症,魅力等等)。以{{mpic\word}},并移除所有逗号,使一行如下所示:

**[遗忘]。父母:{mpic\\Slowpoke}{{mpic\Slowbro}{{mpic\Snorlax}}

我已经搜索过了,但是我真的不知道这在一两次行动中是否是可能的(我不介意我必须做一些事情-- 10次比520次更好)。我只有Notepad++版本5.9 (不能更新),但我也有字,所以请帮助,如果你可以!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 10:46:46

噢,鸡蛋动起来了!试试这个正则表达式:

代码语言:javascript
运行
复制
(?:.*Parents?:|\G)[\s,]*\K\[\[([^\]]+)\]\],?

代之以:

代码语言:javascript
运行
复制
{{mpic|$1}}

regex101演示

这应该可以做到:)

代码语言:javascript
运行
复制
(?:            
  .*Parents?:  # begins with ".*Parents?:"
|              # or
  \G           # at the end of previous match
)
[\s,]*         # match spaces and commas
\K             # restart the match
\[\[           # match twin open square brackets
([^\]]+)       # capture what's inside the square brackets
\]\]           # match twin close square brackets
,?             # match any comma that comes after it

我认为\G是在v6x版本中实现的。试试这个解决办法:

代码语言:javascript
运行
复制
\[\[([^\]]+)\]\](?![^:\n]*:),?

用和以前一样的东西代替。这个比较简单,不过我想效果也一样好。它与[[ ... ]]相匹配,只要它在同一条线上没有前面的:

票数 1
EN

Stack Overflow用户

发布于 2014-03-11 11:01:45

在Notepad++中执行以下步骤:

步骤1:查找所有‘[’&用‘{{mpic\’替换所有‘

步骤2:查找所有的‘]’&用'}}‘替换所有

第三步:查找所有“,”&将所有替换为“”

步骤4:查找所有{{mpic\\“,并将所有替换为”[[]“

(注意:对于步骤4,在查找和替换时,请将**放在两个字符串的前面。在回答这个问题时,如果我把**放在前面,它就会变得大胆。)

步骤5:查找All‘}.’&用‘]替换所有

你的问题会解决的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22323136

复制
相关文章

相似问题

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