2017-10-15 110 views
2

我有一排TXT記事本++正則表達式。查找並替換通配符,但不允許任何空格?

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

這樣的事情,但我希望它看起來像

[[asdfg]] [[qwerty]] 

使用通配符([* \ |)試圖搜索時,導致它發現整個線路「|」不允許它之間有空間應該工作,但我不知道如何做到這一點。

編輯1

這是從維基百科轉儲,所以第一部分是這個詞在它的基本形式,第二個是它如何融入句子。像[[I]] [[be|was]] [[at]] [[the]] [[doctor]]東西,我想把它變成一般的句子

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

編輯2

我發現有些解決方案。我只是把每一個單詞放在一個新的行中,做了第一個正則表達式,然後刪除了換行符。這的確有點亂了我的間距,但...

+0

應該總能找到相同/重複的字符,如'C'| C ','a'| a'? – RomanPerekhrest

+0

不是。它來自維基百科轉儲,所以第一部分是基本形式中的單詞,第二部分是它如何適合句子。像 [[I]] [[是|]] [[at]] [[the]] [[doctor]]。我想把它改成正常的句子。 – rrter123

+0

應該如何取代[[I]] [[是|是]] [[at]] [[]] [[doctor]]? – RomanPerekhrest

回答

1

試試這個正則表達式:

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

替換爲:

[[$1]] 

確保你選擇Regular expression底部在記事本中單擊Replace All之前++ 。

+0

它說它無法找到文本。 – rrter123

+0

它應該找到類似這個'[[c'| c]]'的東西。在點擊「全部替換」之前,您是否在底部選擇了「正則表達式」? – Ibrahim

+0

雖然我並不清楚代碼,但它不是真的c'| c這是兩個不同的單詞。抱歉。 – rrter123

0

你可以做到這一切在一個像下面這樣運行

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

這需要通過

[[$1 

更換見a demo on regex101.com


分佈看這個說:

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

之後,你只需要更換打開支架和組的內容$1