程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> notepad++正則表達式

notepad++正則表達式

編輯:更多關於編程

       正則表達式是一個查詢的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以擴展查找字符串的能力,正則表達式在查找和替換字符串的作用不可忽視,它 能很好提高工作效率。

      表達式 說明

      t 制表符.

      n 新行.

      . 匹配任意字符.

      | 匹配表達式左邊和右邊的字符. 例如, “ab|bc” 匹配 “ab” 或者 “bc”.

      [] 匹配列表之中的任何單個字符. 例如, “[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意數字.

      [^] 匹配列表之外的任何單個字符. 例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非數字字符.

      * 其左邊的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”, “be” 或者 “bee”.

      + 其左邊的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”.

      ? 其左邊的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”.

      ^ 其右邊的表達式被匹配在一行的開始. 例如 “^A” 僅僅匹配以 “A” 開頭的行.

      ” 僅僅匹配以 “e” 結尾的行.

      () 影響表達式匹配的順序,並且用作表達式的分組標記.

       轉義字符. 如果你要使用 “” 本身, 則應該使用 “”.

      例子:

      原始串

      str[1]abc[991];

      str[2]abc[992];

      str[11]abc[993];

      str[22]abc[994];

      str[111]abc[995];

      str[222]abc[996];

      str[1111]abc[997];

      str[2222]abc[999];

      目標串:

      abc[1];

      abc[2];

      abc[11];

      abc[22];

      abc[111];

      abc[222];

      abc[1111];

      abc[2222];

      處理:

      查找串:str

      abc

      替換串:abc[1]

      【1】正則表達式應用——替換指定內容到行尾

      原始文本如下面兩行

      abc aaaaa

      123 abc 444

      希望每次遇到“abc”,則替換“abc”以及其後到行尾的內容為“abc efg”

      即上面的文本最終替換為:

      abc efg

      123 abc efg

      解決:

      ① 在替換對話框,查找內容裡輸入“abc.*”

      ② 同時勾選“正則表達式”復選框,然後點擊“全部替換”按鈕

      其中,符號的含義如下:

      “.” =匹配任意字符

      “*” =匹配0次或更多

      注意:其實就是正則表達式替換,這裡只是把一些曾經提出的問題加以整理,單純從正則表達式本身來說,就可以引申出成千上萬種特例。

      【2】正則表達式應用——數字替換

      希望把

      asdadas123asdasdas456asdasdasd789asdasd

      替換為:

      asdadas[123]asdasdas[456]asdasdasd[789]asdasd

      在替換對話框裡面,勾選“正則表達式”復選框;

      在查找內容裡面輸入“[0-9][0-9][0-9]”,不含引號

      “替換為:”裡面輸入“[12]”,不含引號

      范圍為你所操作的范圍,然後選擇替換即可。

      實際上這也是正則表達式的使用特例,“[0-9]”表示匹配0~9之間的任何特例,同樣“[a-z]”就表示匹配a~z之間的任何特例

      上面重復使用了“[0-9]”,表示連續出現的三個數字

      “”代表第一個“[0-9]”對應的原型,“1”代表第二個“[0-9]”對應的原型,依此類推

      “[”、“]”為單純的字符,表示添加“[”或“]”,如果輸入“其它12其它”,則替換結果為:

      asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd

      功能增強(by jiuk2k):

      如果將查找內容“[0-9][0-9][0-9]”改為“[0-9]*[0-9]”,對應1 或 123 或 12345 或 …

      大家根據需要定制

      相關內容還有很多,可以自己參考正則表達式的語法仔細研究一下

      【3】正則表達式應用——刪除每一行行尾的指定字符

      因為這幾個字符在行中也是出現的,所以肯定不能用簡單的替換實現

      比如

      12345 1265345

      2345

      需要刪除每行末尾的“345”

      這個也算正則表達式的用法,其實仔細看正則表達式應該比較簡單,不過既然有這個問題提出,說明對正則表達式還得有個認識過程,解決方法如下

      解決:

      在替換對話框中,啟用“正則表達式”復選框

      在查找內容裡面輸入“345

      ”表示從行尾匹配

      如果從行首匹配,可以用“^”來實現,不過 EditPlus 有另一個功能可以很簡單的刪除行首的字符串

      a. 選擇要操作的行

      b. 編輯-格式-刪除行注釋

      c. 在彈出對話框裡面輸入要清除的行首字符,確定

      【4】正則表達式應用——替換帶有半角括號的多行

      幾百個網頁中都有下面一段代碼:

      n

      在替換對話框啟用“正則表達式”選項,這時就可以完成替換了

      【5】正則表達式應用——刪除空行

      啟動EditPlus,打開待處理的文本類型文件。

      ①、選擇“查找”菜單的“替換”命令,彈出文本替換對話框。選中“正則表達式”復選框,表明我們要在查找、替換中使用正則表達式。然後,選中“替換范圍” 中的“當前文件”,表明對當前文件操作。

      ②、單擊“查找內容”組合框右側的按鈕,出現下拉菜單。

      ③、下面的操作添加正則表達式,該表達式代表待查找的空行。(技巧提示:空行僅包括空格符、制表符、回車符,且必須以這三個符號之一作為一行的開頭,並且 以回車符結尾,查找空行的關鍵是構造代表空行的正則表達式)。

      直接在”查找”中輸入正則表達式“^[ t]*n”,注意t前有空格符。

      (1)選擇“從行首開始匹配”,“查找內容”組合框中出現字符“^”,表示待查找字符串必須出現在文本中一行的行首。

      (2)選擇“字符在范圍中”,那麼在“^”後會增加一對括號“[]”,當前插入點在括號中。括號在正則表達式中表示,文本中的字符匹配括號中任意一個字符 即符合查找條件。

      (3)按一下空格鍵,添加空格符。空格符是空行的一個組成成分。

      (4)選擇“制表符”,添加代表制表符的“t”。

      (5)移動光標,將當前插入點移到“]”之後,然後選擇“匹配 0 次或更多”,該操作會添加星號字符“*”。星號表示,其前面的括號“[]”內的空格符或制表符,在一行中出現0個或多個。

      (6)選擇“換行符”,插入“n”,表示回車符。

      ④、“替換為”組合框保持空,表示刪除查找到的內容。單擊“替換”按鈕逐個行刪除空行,或單擊“全部替換”按鈕刪除全部空行(注意:EditPlus有時 存在“全部替換”不能一次性完全刪除空行的問題,可能是程序BUG,需要多按幾次按鈕)。

      1.在漢化的時候,是否經常碰到這樣的語句需要翻譯:

      Code:

      “Error adding the post!”;

      “Error adding the comment!”;

      “Error adding the user!”;

      如果有很多類似的文件一個一個翻譯顯然很累而且感覺很無聊。

      其實可以這樣處理,在Editplus裡面用 替換 功能,在替換對話框選中“正則表達式”復選框:

      查找原文件:

      Code:

      “Error adding ([^!|"|;]*)

      替換成:

      Code:

      “在增加1時發生錯誤

      這樣替換之後發生了什麼?結果是:

      Code:

      “在增加the post時發生錯誤!”;

      “在增加the comment時發生錯誤!”;

      “在增加the user時發生錯誤!”;

      ok,接下來你會怎麼做?當然再替換一次把the post、the comment、the user替換成你要翻譯的詞。得到最後的結果:

      Code:

      “在增加帖子時發生錯誤!”;

      “在增加評論時發生錯誤!”;

      “在增加用戶時發生錯誤!”;

      2.要提取的單詞在中間,比如:

      Code:

      can not be deleted because

      can not be added because

      can not be updating because

      可以用這種方式:

      在Editplus裡面用 替換 功能,在替換對話框選中“正則表達式”復選框:

      查找原文件:

      Code:

      can not be ([^ ]*) because

      替換成:

      Code:

      無法被1因為

      這樣替換之後發生了什麼?結果是:

      Code:

      無法被deleted因為

      無法被added因為

      無法被updating因為

      其余步驟如上。

      在漢化量很大而且句式比較單調的情況下對效率的提高很明顯!

      解釋一下:([^!|"|;]*) 的意思是 不等於 ! 和 ” 和 ; 中的任何一個,意思就是這3個字符之外的所有字符將被選中(替換區域);

      1 即被選中的替換區域所在的新位置(復制到這個新位置)。

      3.經常手工清理一行一行地刪除文本文件裡面的空白行,其實可以交給Editplus更好的完成,在Editplus裡面用替換功能,在替換對話框選中 “正則表達式”復選框:

      查找原文件:

      Code:

      ^[ t]*n

      替換部分為空就可以刪除空白行了,執行一下看看:)

      abandon[2''b9nd2n]v.拋棄,放棄

      abandonment[2''b9nd2nm2nt]n.放棄

      abbreviation[2bri:vi''ei62n]n.縮寫

      abeyance[2''bei2ns]n.緩辦,中止

      abide[2''baid]v.遵守

      ability[2''biliti]n.能力

      able[''eibl]adj.有能力的,能干的

      abnormal[9b''n0:m2l]adj.反常的,變態的

      aboard[2''b0:d]adv.船(車)上

      1.

      查找: (^[a-zA-Z0-0-]+)(

      +)(.*)

      替換: @@@@@”1″,”2″,”3″,

      效果:

      @@@@@”abandon”,”[2''b9nd2n]“,”v.拋棄,放棄”,

      @@@@@”abandonment”,”[2''b9nd2nm2nt]“,”n.放棄”,

      @@@@@”abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫”,

      @@@@@”abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,

      @@@@@”abide”,”[2''baid]“,”v.遵守”,

      @@@@@”ability”,”[2''biliti]“,”n.能力”,

      @@@@@”able”,”[''eibl]“,”adj.有能力的,能干的”,

      @@@@@”abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態的”,

      @@@@@”aboard”,”[2''b0:d]“,”adv.船(車)上”,

      2.

      查找: n

      替換:

      注: 要次替換內容為空

      效果:

      @@@@@”abandon”,”[2''b9nd2n]“,”v.拋棄,放棄 ”,@@@@@”abandonment”,”[2''b9nd2nm2nt]“,”n.放棄 ”,@@@@@”abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫 ”,@@@@@”abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,@@@@@”abide”,”[2''baid]“,”v.遵守 ”,@@@@@”ability”,”[2''biliti]“,”n.能力”,@@@@@”able”,”[''eibl]“,”adj.有能力的,能 干的 ”,@@@@@”abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態的 ”,@@@@@”aboard”,”[2''b0:d]“,”adv.船(車)上”,@@@@@”abolish”,”[2''b0li6]“,”v.廢 除,取消”,@@@@@”abolition”,”[9b2''li62n]“,”n.廢除,取消”

      3.

      查找: @@@@@

      替換: n

      效果:

      “abandon”,”[2''b9nd2n]“,”v.拋棄,放棄”,

      “abandonment”,”[2''b9nd2nm2nt]“,”n.放棄”,

      “abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫”,

      “abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,

      “abide”,”[2''baid]“,”v.遵守”,

      “ability”,”[2''biliti]“,”n.能力”,

      “able”,”[''eibl]“,”adj.有能力的,能干的”,

      “abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態的”,

      “aboard”,”[2''b0:d]“,”adv.船(車)上”,

      “abolish”,”[2''b0li6]“,”v.廢除,取消”,

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved