Notepad ++正则表达式。查找并替换为通配符,但不允许任何空格?

时间:2017-10-15 17:20:14

标签: regex notepad++ wildcard

我在txt中有这样的东西

[[asdfg]] [[abcd|qwerty]]

连续,但我希望它看起来像那样

 [[asdfg]] [[qwerty]]

在尝试搜索时使用通配符([[。* \ |),导致它找到整行直到" |"不允许它之间有空间应该有效,但我不知道该怎么做。

编辑1

它来自维基百科转储,所以第一部分是其中的单词的基本形式,第二部分是它如何适合句子。像[[I]] [[be|was]] [[at]] [[the]] [[doctor]]之类的东西我想把它改成普通的句子

[[I]] [[was]] [[at]] [[the]] [[doctor]]

编辑2

我发现了一些解决方案。我只是将每个单词放在一个新行中,执行第一个正则表达式然后删除换行符。这确实让我的间距变得混乱......

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

\[\[\w+\|(\w+)\]\]

替换为:

[[$1]]

在Notepad ++中点击Regular expression之前,请务必在底部选择Replace All

答案 1 :(得分:0)

您可以在一次运行中完成所有操作

\[{2}(?:(?!\]{2}).)+?\|([^\]]+)

这需要替换为

[[$1

a demo on regex101.com

<小时/> 细分说明:

\[{2}             # match [[
(?:(?!\]{2}).)+?  # do not overrun ]]
\|                # |
([^\]]+)          # capture anything not ] into group 1

之后,您只需要替换开放式括号和组$1的内容