2010-02-21 96 views
0

編輯:記事本+ +的正則表達式引擎是一個問題。正則表達式在Python中運行良好。爲什麼這個正則表達式在Notepad ++中不起作用?

我正在使用Notepad ++。我試圖讓一個正則表達式,將改變這個(如果你很好奇,它是遊戲的西班牙語導遊):

*阿塞羅:恩LA Estatua德Gabomba
** Absorbe PV德UN enemigo

要這樣:

==== ====阿塞羅
*恩拉Estatua德Gabomba
* Absorbe PV日聯合國enemigo

我想出了這個,但它不匹配文字:

\*([^:]+): ([\w ]+)\n\*\*([^\n]+) 

我失去了一些東西明顯?

+1

這與Mac OS X上的TextMate相匹配。 – 2010-02-21 16:29:08

+0

也許這是換行符問題。您是否嘗試過Windows'\ r \ n'而不是? – Gumbo 2010-02-21 16:32:34

+0

@robert:是的,我得到它在Python中的工作,它似乎是Notepad ++的問題。我不知道爲什麼這裏的答案被刪除了,但是哦。謝謝。 – Javier 2010-02-21 16:40:12

回答

4

看來Notepad ++在正則表達式模式下找不到換行符。您必須用擴展模式替換換行符,例如|,在新字符串上應用正則表達式,然後用換行符替換|

3

你的正則表達式是正確的。嘗試分別搜索\*([^:]+): ([\w ]+)\*\*([^\n]+),它將匹配。

這只是Notepad ++不支持多行正則表達式(因爲Scintilla沒有)。請注意,有兩個不同的搜索對話框可用:Ctrl + F顯示內置對話框,Ctrl + R顯示TextFX對話框,其中有更多選項。但TextFX不支持多行搜索。

0

作爲上述2個答案的另一個選項,TextPad支持POSIX正則表達式語法(包括多行)。

要設置TextPad使用POSIX:配置 - >首選項 - >編輯 - >「使用POSIX正則表達式語法」

我喜歡記事本+ +我使用TextPad多年後,卻始終保持TextPad我的系統上多行正則表達式和其他一些很好的事情。

相關問題