2013-10-29 70 views
-1

我有一個包含隨機代碼的腳本,但我正在尋找一種方式在記事本++或批處理文件或任何工具,可以取代sepcifque代碼,這裏是一個例如:通過工具使用腳本替換specefique代碼

Random 
If this equal that then you soulAd do this and do that therefore.. 
the code should be executed immediatly 
--stackb 

select * from user_error where object_name = name 
select * from user_error where table= randomly 

case 1 a = b else c=a 
--stacke 
Begin with the structure of the data and divide the codes 
end with what you know 

我想更換評論棧b之間的字和堆棧一個這樣的結果就會像下面

Random 
If this equal that then you sould do this and do that therefore.. 
the code should be executed immediatly 
--stackb 

The codes here has been replaced, 
can you do that ? 

case 1 a = b else c=a 
--stacke 
Begin with the structure of the data and divide the codes 
end with what you know 

是否有批處理文件或記事本++其中一碼我可以實現我的結果嗎?

回答

2

在記事本++,去Search > Replace菜單(快捷鍵CTRL + ^h)並執行以下操作:

  1. 查找內容(見下文解釋):

    (\-\-stackb.*?)select.+?$\r?\nselect.+?$(\r?\n.*?\-\-stacke) 
    
  2. 替換:

    $1replaced text$2 
    
  3. 選擇單選按鈕「正則表達式」&選擇複選框「。 。匹配換行符」

  4. 然後按Replace All

這將改變下列文件:

Random 
If this equal that then you soulAd do this and do that therefore.. 
the code should be executed immediatly 
--stackb 

select * from user_error where object_name = name 
select * from user_error where table= randomly 

case 1 a = b else c=a 
--stacke 
Begin with the structure of the data and divide the codes 
end with what you know 

要:

Random 
If this equal that then you soulAd do this and do that therefore.. 
the code should be executed immediatly 
--stackb 

replaced text 

case 1 a = b else c=a 
--stacke 
Begin with the structure of the data and divide the codes 
end with what you know 

正則表達式的解釋:

  • \-\-stackb匹配字符串--stackb。這裏沒什麼特別的,除了轉義的反斜槓特殊字符。這意味着-將被解釋爲一個文字-,而不是一個正則表達式特殊字符
  • .*?.比賽任何字符,再加上由於我們激活選項「匹配換行符」換行符。星號*量詞對於匹配0或更多次。所以.*表示匹配任何字符或換行符0次或更多次。當一個量詞後面是一個問號?它使量詞非貪婪,這是一種更高級的話題,但在簡單的話就好像說的量詞儘量滿足自己帶的.
  • 可能的最低數量
  • (\-\-stackb.*?)既然您已經理解了正則表達式的含義,您可以添加一個括號以捕獲匹配結果。您可以使用特殊變量$1(或\1也是如此)訪問結果。我們正在使用它在替換,你可以看到。
  • select.+?$\r?\n這裏唯一的新東西,是行的年底和特殊字符\r這是用來找到一個換行符(回車),\n(新行)匹配的$。請注意,\r後面跟着?量詞,這意味着匹配1或0次
+0

不錯,但你能解釋一下代碼的含義嗎?所以我可以知道如何使用它(\ - \ - stackb。*?)select。+?$ \ r?\ nselect。+?$(\ r?\ n。*?\ - \ - stacke) ?$意味着? ..我可以替換一個大腳本嗎? – Moudiz

+0

我剛剛解釋了編輯答案。我希望這有幫助。但說實話,在你的情況最好的事情是先閱讀一個簡單的[正則表達式教程](https://www.google.com/search?q=regex+tutorial) – psxls

+0

psxls thanx爲您解釋,但在您的代碼我必須在每一行中包括第一個worf,如果我有一個大段落,我該如何替換它。你的代碼將是有用的? – Moudiz