我有大约520行看起来有点像这样:
**[遗忘]。父母:[慢戳][斯洛布罗],[斯诺拉克斯] **[魅力]。家长:[柯顿] **[诅咒]。父母:[慢波]、[斯洛布罗]、[斯洛金]、[特卫格]、[格罗特尔]、[托特拉]、[铁罗森]、[铁刺] **[忍受]。父母:[Shieldon],[Bastiodon]
我想用F&R来改变“父母”之后的每一个例子(例如,不是健忘症,魅力等等)。以{{mpic\word}},并移除所有逗号,使一行如下所示:
**[遗忘]。父母:{mpic\\Slowpoke}{{mpic\Slowbro}{{mpic\Snorlax}}
我已经搜索过了,但是我真的不知道这在一两次行动中是否是可能的(我不介意我必须做一些事情-- 10次比520次更好)。我只有Notepad++版本5.9 (不能更新),但我也有字,所以请帮助,如果你可以!
发布于 2014-03-11 10:46:46
噢,鸡蛋动起来了!试试这个正则表达式:
(?:.*Parents?:|\G)[\s,]*\K\[\[([^\]]+)\]\],?
代之以:
{{mpic|$1}}
regex101演示
这应该可以做到:)
(?:
.*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版本中实现的。试试这个解决办法:
\[\[([^\]]+)\]\](?![^:\n]*:),?
用和以前一样的东西代替。这个比较简单,不过我想效果也一样好。它与[[ ... ]]
相匹配,只要它在同一条线上没有前面的:
。
发布于 2014-03-11 11:01:45
在Notepad++中执行以下步骤:
步骤1:查找所有‘[’&用‘{{mpic\’替换所有‘
步骤2:查找所有的‘]’&用'}}‘替换所有
第三步:查找所有“,”&将所有替换为“”
步骤4:查找所有{{mpic\\“,并将所有替换为”[[]“
(注意:对于步骤4,在查找和替换时,请将**放在两个字符串的前面。在回答这个问题时,如果我把**放在前面,它就会变得大胆。)
步骤5:查找All‘}.’&用‘]替换所有
你的问题会解决的。
https://stackoverflow.com/questions/22323136
复制相似问题