2013-11-25 96 views
0

我一直在尋找很多在網絡和在這裏,但我找不到解決方案。 我不得不在保存在一個文本文件中的所有註冊表路徑的兩個替代如下:如何在Notepad ++中將兩個正則表達式合併成一個正則表達式?

  1. 替換所有asterisc有:[#42]
  2. 兩個取代所有的單反斜線。

我已經有兩個表達式是這樣做的權利:

第一種情況:

查找:(\*) - 更換:\[#42\]

第二種情況:

查找:([^\\])(\\)([^\\]) - 更換:$1$2\\$3

現在,我只想將它們連接在一起成爲一個表達式,這樣我就可以在一次中只運行一次。 我在Windows 7(64位)中使用Notepad ++ 6.5.1。

示例行中,我想這個工作(包括我反斜槓,但我不知道他們是否將出現在html):

HKLM\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\

我已經嘗試過用管分離它,就像我在Jscript(WSH)中所做的那樣,但它在這裏不起作用。我也嘗試了很多其他的東西,但都沒有工作。 有什麼幫助嗎? 謝謝!

編輯:我已經把所有的反斜槓正確,但頁面的HTML似乎是「吃」其中的一些!
編輯2:有人重新編輯我的文本以包含不刪除反斜槓的重音,所以表達式再次出錯。但我知道並修復了它。 ;-) 對不起,這是我的第一篇文章。 :)

+0

我認爲你不能。 '(*)'也不是有效的PCRE正則表達式。 – m0skit0

+0

如果您想用'**'替換'*',可以輕鬆完成。但事實是,您無法靈活地使用2種完全不同的替代品。 – OGHaza

回答

0

正如其他人已經提到,這是不可能的。

但是,你可以通過使用宏在Notepad ++中實現你想要的。

進入「宏」>「開始錄音」菜單,應用這兩個搜索並替換正則表達式,按「停止錄音」,然後「保存當前錄製的宏」,給它一個名字,指定一個快捷方式,然後你完成了。您現在可以使用一個快捷方式隨時重複使用相同的替換件。

+0

偉大的理想!我只是試過了,它按照我的意圖工作! –

+1

哎呀!我該死的電腦剛剛凍結在我發佈這個的時刻,現在我不能編輯它......好吧,謝謝你的想法。這是一個解決方案。 :-) 我將此標記爲答案。
但系統不允許我投票。 :(
對於系統ADMINS: 我知道我是新來的,但這是荒謬的不beeing能夠投票答覆我自己的問題。我是一個長大了超過20年的IT經驗。爲什麼我會被當做孩子? 你應該改變這個政策,這沒有任何意義。 –

0

由於您的替換字符串完全不同,並且使用的數據不是來自任何捕獲的數據(即[#42]),您不能。

請記住,替換字符串只是掩碼,不能包含任何條件內容。