EmEditor 正則表達式使用基礎(chǔ)與實戰(zhàn)

一、基礎(chǔ)篇
1.
^ 匹配行首,比如說查找^s, 就是查位于行首的 s
2.
.*?$ 這個用處比較大,但一般不單獨使用,比如與上面的結(jié)合
比如 ^s.*?$,就是查以 s 為行首的行,其中 .* 是匹配任意字符,$ 代表行尾,?$ 是告訴程序你要定位到行尾。
3.
\n 這個很簡單,就是換行符,用得也非常多,
比如 “\n”,替換成“\n”,就是把2個換行符替換成1個。
練習(xí):
bas,bat =to,go(走)
chlor =green or chlorine(綠,氯)
chol =gallbladder(膽)
chondrio =cartilage(軟骨)
erg =energe(能量)
err =to wander(流浪;漂泊),to err(偏離正道,犯錯,犯罪)
ess,est =to be(存在)
est,ess =to be(存在)
a. 查找行首的a、e、c等字符;
^a|^e|^c
b. 查找以c開頭的行,不包括換行符;
^c.*?$
c. 查找以e開頭的行,包括換行符;
^e.*\n
d. 查找兩個相連的換行符,將它替換成一個;
\n
\n
4.
\s 是表示一個半角空格(半角和全角看不懂的請先google一下),
\t 指的是一個TAB空格,不清楚的話在Emeditor里敲一次TAB鍵,出來的就是它了。
查 \s 的時候是包括TAB空格的,但查 \t 的時候卻不能包括半角空格,其實這兩個都非常有用。
\s 與 \n 連用,那就是非常實用的查行尾空格的表示法了
5.
{1,n} 大括號內(nèi)的數(shù)字是表示數(shù)量的范圍,它的前面必須有個東西,比如說“\s{1,3}”就表示1到3個空格通吃,
如果用“\s{3}”呢,就意味著3個空格
6.
[a-z] 表示26個字母中的任一個,如果在替換窗口內(nèi)勾選“區(qū)分大小寫”則表示26個小寫字母,否則大小寫通吃。
練習(xí):
acousto =sound(聲音)
acro = high(高)
act =do(行動)
acuti = acuate (尖的,尖銳的)
acousto = sound(聲音)
aer,aero,ar,aro=air(空氣)
after =(在……之后)
1)刪除下列文本中的行首空格(請結(jié)合上一練習(xí));
^\s*
2)刪除行尾空格;
\s*$
3)將文本中的TAB空格替換成半角空格;
4)查找任意相連的四個字母;
[a-z]{4}
5)查找位于行首的長度為3-5個字母的單詞(注意必須是完整單詞,這題稍微要動動腦筋,找一下規(guī)律)。
^[a-z]{3,5}
小結(jié):使用正則表達式來處理文檔,最大的關(guān)鍵在于仔細去分析文檔中的規(guī)律,只要有規(guī)律可以利用,我們就能進行批量處理,工作效率就是這么提高的。一定要多想,更重要的是多試,有時候想半小時還不如實際動手操作5分鐘。
7.
[] 就是上面的[a-z]往下講,用中括號括起來表示括號某一個字符,你也可以這樣表示:[abc],意思是a、b、c三個字母中任一個都行。
但[] 與^結(jié)合有一個非常實用的用法,比如^[^c],這表示位于行首的除 c 之外的字母。
8.
() 單獨使用的話沒有什么意義,用了它就表示引用括號里的內(nèi)容,然后用\1\2\3…… 來一一調(diào)用
\1 是第一個小括號里的內(nèi)容,\2 是第二個小括號里的內(nèi)容,依此類推。
9.
[[:unicode:]] 用它來將中文字符和英文字符區(qū)分開來。
練習(xí):
document.selection.Replace("瑞秋","Rachel",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace("錢德勒","Chandler",eeFindNext|eeReplaceAll|eeFindReplaceRegExp);
document.selection.Replace("錢德","Chandler",eeFindNext | eeReplaceAll|eeFindReplaceRegExp);
document.selection.Replace("喬伊","Joey",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace("菲比","Phoebe",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
然后分別執(zhí)行下述操作:
1.將 ("瑞秋","Rachel", 改為 ("Rachel","瑞秋",
其它各行參照此格式進行修改;
查找:(".*?"),(".*?")
替換:\2,\1
2.刪除所有中文字符;
[[:unicode:]]
10.特殊字符:
^
$
( )
[ ]
{ }
.
?
+
*
|
這些字符都是在正則表達式中被“征用”了,稱之為特殊字符,引用的時候,必須前面加 "\" 進行區(qū)分,比如你要用到 "$" 字符的時候,必須使用 "\$",這樣程序才不會以為你是在匹配行尾。
練習(xí):
[00:53.90][Monica]:There's nothing to tell!
[00:55.60][Monica]:He's just some guy I work with!
[00:57.90][Joey]:C'mon, you're going out with the guy!
[00:59.10][Joey]:There's gotta be something wrong with him!
[01:02.70][Chandler]:All right Joey, be nice.
[01:04.80][Chandler]:So does he have a hump? A hump and a hairpiece?
然后分別執(zhí)行下述操作:
1.刪除帶"[]"的內(nèi)容;
\[.*\]
2.做完上一步后,刪除位于行首的 ":"。
二、實戰(zhàn)篇
練習(xí)1:
首先,把以下五個小零件翻譯出來,這一定很簡單,它們是:
第一個零件:這項計劃提供機會,翻成英語是This plan providedopportunities。
第二個零件:為研究者,翻成英語是forresearchers。
第三個零件:從印度和外國來的,翻成英語是from India andabroad。
第四個零件:研究老虎,翻成英語是to studytigers。
第五個零件:在保護區(qū)里,翻成英語是in thereserves。
然后將這段文本替換成如下格式:
首先,把以下五個小零件翻譯出來,這一定很簡單,它們是:
第一個零件:這項計劃提供機會,翻成英語是This plan providedopportunities。
第二個零件:為研究者,翻成英語是forresearchers。
第三個零件:從印度和外國來的,翻成英語是from India andabroad。
第四個零件:研究老虎,翻成英語是to studytigers。
第五個零件:在保護區(qū)里,翻成英語是in thereserves。
提示:刪除多余的換行符。
\n
練習(xí)2:
And bigger boobs! 大笨蛋!
"Yeah, see.. you took mine. Chandler, what about you?" 你知道我的了。錢德,你呢?
"Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever." 如果有一天我變得全能,我要讓自己變得永遠全能。
"See, there's always one guy." 看吧,這兒總是有一個家伙。
"If I had a wish, I'd wish for three more wishes." 如果我有愿望的話,我希望我還能多有三個愿望。
然后將這段文本替換成如下格式:
Q: And bigger boobs!
A: 大笨蛋!
Q: "Yeah, see.. you took mine. Chandler, what about you?"
A: 你知道我的了。錢德,你呢?
Q: "Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever."
A: 如果有一天我變得全能,我要讓自己變得永遠全能。
Q: "See, there's always one guy."
A: 看吧,這兒總是有一個家伙。
Q: "If I had a wish, I'd wish for three more wishes."
A: 如果我有愿望的話,我希望我還能多有三個愿望。
要求:使用一個查找和替換語句完成。
友情提示:這段文本是將EXCEL文件另存為"制表符分隔”的文本文件得到的。
參考答案:
查找:(^.*?)\t(.*?$)
替換:Q: \1\nA: \2
練習(xí)3:
4 And bigger boobs! 大笨蛋!
5 "Yeah, see.. you took mine. Chandler, what about you?" 你知道我的了。錢德,你呢?
6 "Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever." 如果有一天我變得全能,我要讓自己變得永遠全能。
7 "See, there's always one guy.""" 看吧,這兒總是有一個家伙。
8 "If I had a wish, I'd wish for three more wishes.""" 如果我有愿望的話,我希望我還能多有三個愿望。
然后將這段文本替換成如下格式:
Q: And bigger boobs!
A: 大笨蛋!
Q: Yeah, see.. you took mine. Chandler, what about you?
A: 你知道我的了。錢德,你呢?
Q: Uh, if I were omnipotent for a day, I'd.. make myself omnipotent forever.
A: 如果有一天我變得全能,我要讓自己變得永遠全能。
Q: See, there's always one guy.
A: 看吧,這兒總是有一個家伙。
Q: If I had a wish, I'd wish for three more wishes.
A: 如果我有愿望的話,我希望我還能多有三個愿望。
要求:使用一個查找和替換語句完成。
友情提示:""是固定的,變的只是原先位于行首的數(shù)字。
參考答案:
查找:(^\d.*?)\t(.*?\t)(.*?$)
替換:Q: \2\nA: \3
練習(xí)4:
valedictory "a.告別的
n.告別演講"
close-hauled a.張滿帆的,迎風(fēng)航行的
mean "a.吝嗇的,卑鄙的,簡陋的,不舒服的,平庸的,低劣的,中間的,中等的,平均的,普通的
n.中間,中部,中庸"
bumper-to-bumper a.前后緊接且行進緩慢的車隊的
between a rock and a hard place ph.左右為難,進退兩難
have one's head screwed on the right way ph.頭腦清醒
mimic "v.(通過學(xué)養(yǎng))戲弄,模仿,與。。。極相似
n.善于模仿的人,能模仿人的動物,滑稽劇演員
a.模仿的,好模仿的,模擬的,假裝的"
1.將它轉(zhuǎn)換成下面這樣的格式:
valedictory "a.告別的n.告別演講"
close-hauled a.張滿帆的,迎風(fēng)航行的
mean "a.吝嗇的,卑鄙的,簡陋的,不舒服的,平庸的,低劣的,中間的,中等的,平均的,普通的n.中間,中部,中庸"
bumper-to-bumper a.前后緊接且行進緩慢的車隊的
between a rock and a hard place ph.左右為難,進退兩難
have one's head screwed on the right way ph.頭腦清醒
mimic "v.(通過學(xué)養(yǎng))戲弄,模仿,與。。。極相似n.善于模仿的人,能模仿人的動物,滑稽劇演員a.模仿的,好模仿的,模擬的,假裝的"
2.處理成Q&A格式的詞庫:
Q: valedictory
A: "a.告別的n.告別演講"
Q: close-hauled
A: a.張滿帆的,迎風(fēng)航行的
Q: mean
A: "a.吝嗇的,卑鄙的,簡陋的,不舒服的,平庸的,低劣的,中間的,中等的,平均的,普通的n.中間,中部,中庸"
Q: bumper-to-bumper
A: a.前后緊接且行進緩慢的車隊的
Q: between a rock and a hard place
A: ph.左右為難,進退兩難
Q: have one's head screwed on the right way
A: ph.頭腦清醒
Q: mimic
A: "v.(通過學(xué)養(yǎng))戲弄,模仿,與。。。極相似n.善于模仿的人,能模仿人的動物,滑稽劇演員a.模仿的,好模仿的,模擬的,假裝的"
提示:題1需要多動動腦筋,要注意觀察材料的特點,利用好TAB符號,需要搭一個跳板。題2則與練習(xí)1是一樣的解決方法。
參考答案:
1.分三步走
A、查找:^(.*?\t.*?$)
替換:#\1
因為不能直接找出不帶\t的行,那就先給帶\t的行做個標(biāo)記;
B、查找:\n([^#])
替換:\1
注意\n([^#])與(^[^#])的細微區(qū)別
C、查找:^#
替換:
刪除掉行首多余的#號
2.參看練習(xí)2的解答,大部分用EXCEL另存的帶制表符分隔的文本都可以照這樣的方式處理。
相關(guān)文章
- EmEditor是一款非常不錯的文本編輯軟件,該軟件為廣大用戶提供了文字去重功能,那么EmEditor怎么去重呢?接下來小編就為大家?guī)斫獯?,一起來看看?/div> 2018-11-12最近,很多網(wǎng)友問小編如何用EmEditor快速去掉文件中所有的空行?今天小編就給大家整理了使用EmEditor快速批量去掉文件中所有空行的方法步驟,需要的朋友歡迎借鑒2018-06-22為了幫助大家更好的使用EmEditor軟件,這篇教程將將大家如何使用EmEditor快速給純文本文件每行前端加上自動編號,方法簡單實用,經(jīng)常使用EmEditor軟件的朋友建議GET2018-06-22
EmEditor怎么選擇一列文本 EmEditor選擇列的方法
EmEditor一個好用并且免費的文本編輯器,最近,很多網(wǎng)友問小編EmEditor怎么選擇一列文本?今天小編就給大家分享EmEditor選擇列的方法,非常簡單,感興趣的朋友不妨去了解一2018-06-22EmEditor Professional(文本編輯器)使用教程(適用于初學(xué)者)
EmEditor Professional怎么使用呢?下面小編就為大家具體的講解EmEditor Professional如何設(shè)置以及使用,需要的用戶快來試試吧,此教程非常適用于初學(xué)者2016-10-18文本中如何批量添加括號?使用EmEditor批量添加括號教程圖解
如何這里有一份文字材料,而我們需要給內(nèi)容中所有的圖注都加上括號應(yīng)該怎么操作呢?針對此問題,本文就為大家介紹使用EmEditor批量添加括號的方法,有興趣的朋友們可以了解2015-05-29EmEditor是什么 EmEditor為什么程序員都改用它了
EmEditor 是啥?它是一款和UltraEdit、EditPlus類似的文本編輯器2013-12-22很多功能,各大文本編輯器都會提供,而且,各大文本編輯器都會提供配置功能,讓它更加適合您,而不是每個人的編輯器都一個樣2013-12-22經(jīng)常用到EmEditor來編輯純文本文檔。最近接觸了正則表達式,感受到其功能非常強大。2013-06-23EmEditor是一款功能非常強大的文本編輯軟件,該軟件為廣大用戶提供了非常多的文字處理功能,宏就是其中之一,那么EmEditor怎么用宏呢?接下來小編就為大家?guī)斫獯?,一起?/div> 2018-11-12最新評論
大家感興趣的內(nèi)容
- 1VS2010破解版迅雷電驢下載 visual studio2010簡體中文
- 2navicat for mysql怎么注冊?navicat11全系列破解教程
- 3sublime text 3 快捷鍵大全以及配置編譯環(huán)境
- 4pycharm 2021最新永久激活碼(絕對有效,可激活至2100
- 5MyEclipse 10.x 通用破解教程圖文詳解(附官方安裝包下
- 6在PC上測試移動端網(wǎng)站和模擬手機瀏覽器的5大方法
- 7webstorm2020.3.3安裝激活教程(永久破解激活 有效期至
- 8Eclipse中文版之完美漢化教程(詳細圖解)
- 9Win7下VS2010安裝教程(詳細圖解)
- 10Visual Studio 2012 Ultimate旗艦版下載地址與序列號
最近更新的內(nèi)容
- WebStorm如何調(diào)試Vue項目? webstorm配置vue開發(fā)環(huán)境指
- VSCode和webstorm怎么設(shè)置綠色護眼背景? 綠豆沙背景色
- WebStorm常用插件以及實用設(shè)置分享
- 如何安裝配置WebStorm? WebStorm安裝與使用全方位指南
- Webstorm怎么配置? Webstorm入門之軟件配置教程
- Webstorm怎么設(shè)置字體大小/背景顏色/背景圖片?
- 提升代碼搜索效率! VSCode里DeepSeek插件安裝與配置指
- VScode上ESP32開發(fā)插件安裝失敗怎么辦?
- 提升你的編程效率! VSCode的初級使用教程超詳細版
- 新手小白必看! VSCode的詳細安裝與配置全攻略