<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java Blog for Alex Wan

    Let life be beautiful like summer flowers and death like autumn leaves.

    統計

    留言簿(10)

    BlogJava

    Blogs

    DIV+CSS

    JQuery相關

    友情鏈接

    常去的地方

    數據供應

    閱讀排行榜

    評論排行榜

    [ZT]EditPlus正則表達式替換字符串詳解

    網上搜集了些實例

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

    EditPlus的查找,替換,文件中查找支持以下的正則表達式:

    Expression Description
    \t Tab character.
    \n New line.
    . Matches any character.
    | Either expression on its left and right side matches the target string.
    For example, “a|b” matches “a” and “b”.
    [] Any of the enclosed characters may match the target character.
    For example, “[ab]” matches “a” and “b”. “[0-9]” matches any digit.
    [^] None of the enclosed characters may match the target character.
    For example, “[^ab]” matches all character EXCEPT “a” and “b”.
    “[^0-9]” matches any non-digit character.
    * Character to the left of asterisk in the expression should match 0 or more times.
    For example “be*” matches “b”, “be” and “bee”.
    + Character to the left of plus sign in the expression should match 1 or more times.
    For example “be+” matches “be” and “bee” but not “b”.
    ? Character to the left of question mark in the expression should match 0 or 1 time.
    For example “be?” matches “b” and “be” but not “bee”.
    ^ Expression to the right of ^ matches only when it is at the beginning of line.
    For example “^A” matches an “A” that is only at the beginning of line.
    $ Expression to the left of $ matches only when it is at the end of line.
    For example “e$” matches an “e” that is only at the end of line.
    () Affects evaluation order of expression and also used for tagged expression.
    \ scape character. If you want to use character “\” itself, you should use “\\”.

    例子:

    原始串
    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\[([0-9]+)\]abc\[[0-9]+\]
    替換串: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]”,不含引號
    “替換為:”里面輸入“[\0\1\2]”,不含引號
    范圍為你所操作的范圍,然后選擇替換即可。

    實際上這也是正則表達式的使用特例,“[0-9]”表示匹配0~9之間的任何特例,同樣“[a-z]”就表示匹配a~z之間的任何特例
    上面重復使用了“[0-9]”,表示連續出現的三個數字
    “\0”代表第一個“[0-9]”對應的原型,“\1”代表第二個“[0-9]”對應的原型,依此類推
    “[”、“]”為單純的字符,表示添加“[”或“]”,如果輸入“其它\0\1\2其它”,則替換結果為:

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

    4. 任務完成



    Let life be beautiful like summer flowers and death like autumn leaves.

    posted on 2008-08-18 21:21 Alexwan 閱讀(2053) 評論(0)  編輯  收藏 所屬分類: 小筆記好文分享

    主站蜘蛛池模板: 亚洲国产精品自在在线观看| 天堂亚洲免费视频| 亚洲国产精品一区| 免费网站看av片| 久久精品国产亚洲AV无码娇色| 成人无码WWW免费视频| 日本亚洲视频在线 | 成人特黄a级毛片免费视频| 亚洲大尺码专区影院| 成人女人A级毛片免费软件| 亚洲国产成人91精品| 欧美三级在线电影免费| 亚洲AV无码AV男人的天堂不卡 | 久久久久亚洲精品天堂久久久久久| 一级毛片aaaaaa视频免费看| 亚洲一区爱区精品无码| 免费国产成人α片| 亚洲精品福利网站| 在线免费观看毛片网站| 免费的黄色的网站| 久久九九亚洲精品| 69堂人成无码免费视频果冻传媒 | 免费精品国产自产拍观看| 久久久精品视频免费观看 | 国产成人亚洲精品狼色在线| 国产午夜无码精品免费看动漫| 亚洲色偷偷偷网站色偷一区| 成人免费视频软件网站| 一级做a爱片特黄在线观看免费看| 亚洲色大成网站WWW久久九九| 久久国产精品成人片免费| 亚洲色欲啪啪久久WWW综合网| 免费人成在线观看视频播放| 毛片在线播放免费观看| 久久亚洲精品国产精品婷婷 | 亚洲美国产亚洲AV| 亚洲精品无码永久中文字幕| 可以免费看黄的网站| 亚洲免费在线观看| 亚洲一区中文字幕| 国产v亚洲v天堂无码网站|