记事本++正则表达式。查找并替换为通配符,但不允许有任何空格?
Notepad ++ regex. Finding and replacing with wildcard, but without allowing any spaces?
我在 txt 里有这样的东西
[[asdfg]] [[abcd|qwerty]]
连续,但我希望它看起来像那样
[[asdfg]] [[qwerty]]
尝试搜索时使用通配符 ( [[.*\| ),会导致它找到整行直到“|”不允许它之间有一个 space 应该可以,但我不知道该怎么做。
编辑 1
它来自维基百科转储,所以第一部分是单词的基本形式,第二部分是它如何融入句子。像 [[I]] [[be|was]] [[at]] [[the]] [[doctor]]
我想把它改成正常的句子
[[I]] [[was]] [[at]] [[the]] [[doctor]]
编辑 2
我找到了一些解决方案。我只是把每个词都放在一个新行中,做了第一个正则表达式,然后删除了换行符。不过那确实有点弄乱了我的间距...
试试这个正则表达式:
\[\[\w+\|(\w+)\]\]
替换为:
[[]]
在 Notepad++ 中单击 Replace All
之前,请务必选择底部的 Regular expression
。
你可以像这样一次运行全部搞定
\[{2}(?:(?!\]{2}).)+?\|([^\]]+)
这需要替换为
[[
分解为:
\[{2} # match [[
(?:(?!\]{2}).)+? # do not overrun ]]
\| # |
([^\]]+) # capture anything not ] into group 1
之后,您只需替换左括号和
组的内容
我在 txt 里有这样的东西
[[asdfg]] [[abcd|qwerty]]
连续,但我希望它看起来像那样
[[asdfg]] [[qwerty]]
尝试搜索时使用通配符 ( [[.*\| ),会导致它找到整行直到“|”不允许它之间有一个 space 应该可以,但我不知道该怎么做。
编辑 1
它来自维基百科转储,所以第一部分是单词的基本形式,第二部分是它如何融入句子。像 [[I]] [[be|was]] [[at]] [[the]] [[doctor]]
我想把它改成正常的句子
[[I]] [[was]] [[at]] [[the]] [[doctor]]
编辑 2
我找到了一些解决方案。我只是把每个词都放在一个新行中,做了第一个正则表达式,然后删除了换行符。不过那确实有点弄乱了我的间距...
试试这个正则表达式:
\[\[\w+\|(\w+)\]\]
替换为:
[[]]
在 Notepad++ 中单击 Replace All
之前,请务必选择底部的 Regular expression
。
你可以像这样一次运行全部搞定
\[{2}(?:(?!\]{2}).)+?\|([^\]]+)
这需要替换为
[[
分解为:
\[{2} # match [[
(?:(?!\]{2}).)+? # do not overrun ]]
\| # |
([^\]]+) # capture anything not ] into group 1
之后,您只需替换左括号和