notepad++Regex

來源:互聯網
上載者:User

   Regex是一個查詢的字串,它包含一般的字元和一些特殊的字元,特殊字元可以擴充尋找字串的能力,Regex在尋找和替換字串的作用不可忽視,它 能很好提高工作效率。

  運算式 說明

  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】Regex應用——替換指定內容到行尾

  原始文本如下面兩行

  abc aaaaa

  123 abc 444

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

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

  abc efg

  123 abc efg

  解決:

  ① 在替換對話方塊,尋找內容裡輸入“abc.*”

  ② 同時勾選“Regex”複選框,然後點擊“全部替換”按鈕

  其中,符號的含義如下:

  “.” =匹配任一字元

  “*” =匹配0次或更多

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

  【2】Regex應用——數字替換

  希望把

  asdadas123asdasdas456asdasdasd789asdasd

  替換為:

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

  在替換對話方塊裡面,勾選“Regex”複選框;

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

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

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

  實際上這也是Regex的使用特例,“[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 或 …

  大家根據需要定製

  相關內容還有很多,可以自己參考Regex的文法仔細研究一下

  【3】Regex應用——刪除每一行行尾的指定字元

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

  比如

  12345 1265345

  2345

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

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

  解決:

  在替換對話方塊中,啟用“Regex”複選框

  在尋找內容裡面輸入“345

  ”表示從行尾匹配

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

  a. 選擇要操作的行

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

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

  【4】Regex應用——替換帶有半形括弧的多行

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

  n

  在替換對話方塊啟用“Regex”選項,這時就可以完成替換了

  【5】Regex應用——刪除空行

  啟動EditPlus,開啟待處理的文本類型檔案。

  ①、選擇“尋找”菜單的“替換”命令,彈出文本替換對話方塊。選中“Regex”複選框,表明我們要在尋找、替換中使用Regex。然後,選中“替換範圍” 中的“當前檔案”,表明對當前檔案操作。

  ②、單擊“尋找內容”組合框右側的按鈕,出現下拉式功能表。

  ③、下面的操作添加Regex,該運算式代表待尋找的空行。(技巧提示:空行僅包括空格符、定位字元、斷行符號符,且必須以這三個符號之一作為一行的開頭,並且 以斷行符號符結尾,尋找空行的關鍵是構造代表空行的Regex)。

  直接在”尋找”中輸入Regex“^[ t]*n”,注意t前有空格符。

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

  (2)選擇“字元在範圍中”,那麼在“^”後會增加一對括弧“[]”,當前插入點在括弧中。括弧在Regex中表示,文本中的字元匹配括弧中任意一個字元 即符合尋找條件。

  (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裡面用 替換 功能,在替換對話方塊選中“Regex”複選框:

  尋找原檔案:

  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裡面用 替換 功能,在替換對話方塊選中“Regex”複選框:

  尋找原檔案:

  Code:

  can not be ([^ ]*) because

  替換成:

  Code:

  無法被1因為

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

  Code:

  無法被deleted因為

  無法被added因為

  無法被updating因為

  其餘步驟如上。

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

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

  1 即被選中的替換地區所在的新位置(複製到這個新位置)。

  3.經常手工清理一行一行地刪除文字檔裡面的空白行,其實可以交給Editplus更好的完成,在Editplus裡面用替換功能,在替換對話方塊選中 “Regex”複選框:

  尋找原檔案:

  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.廢除,取消”,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.