麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:16:03
字體:
來源:轉載
供稿:網友
正則表達式是一個查詢的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以擴展查找字符串的能力,正則表達式在查找和替換字符串的作用不可忽視,它能很好提高工作效率。
 
 
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. 任務完成
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本黄色一级视频 | 久久亚洲精品11p | 水卜樱一区二区av | a一级黄 | 一级做a爱片毛片免费 | 欧美日韩在线播放 | 12av毛片 | 日本免费aaa观看 | 精品国产一区二区久久 | 一区二区三区黄色 | 视频一区二区不卡 | 久久国产精品二国产精品中国洋人 | 中文字幕网在线 | 爽爽淫人综合网网站 | 性欧美大战久久久久久久免费观看 | 日日狠狠久久 | 男女视频免费看 | 超污视频在线看 | 久久精品九九 | 欧美日韩亚洲成人 | 国产精品久久久久久婷婷天堂 | 99欧美视频 | 亚洲第一页综合 | 视频在线91 | 黄色片观看 | 黄色电影免费提供 | 毛片在线免费 | 黄色三级三级三级 | v11av在线视频成人 | 国产深夜福利视频在线播放 | 中文字幕欧美视频 | 日日草夜夜| 欧美一级黄色影院 | 国产亚洲精品久久午夜玫瑰园 | 国产一区二区三区四区精 | 国产成人强伦免费视频网站 | av电影在线观看网站 | 中文字幕精品在线播放 | 草草久久久| 99久久精品免费 | 免费午夜视频在线观看 |