正則表達式(Regular Expression,在代碼中常簡寫為regex、regexp或RE)是計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。
正則表達式是一個查詢的字符串,它包含一般的字符和一些特別 的字符,特別 字符可以擴展查找字符串的能力,正則表達式在查找和替換字符串的作用不可忽視,它能很好提高工作效率。
正則表達式用于字符串處理、表單驗證等場合,有用 高效。開發(fā)人員或運維人員很得力的文本編輯器要數(shù)editplus了,這個軟件支持正則表達式,使用正則表達式進行編輯文本經(jīng)??梢詭椭阃瓿珊芏喙ぷ?。這里我就給大家介紹幾種editplus常用正則表達式的使用方法,以備不時之需。
【1】正則表達式應用——替換指定內(nèi)容到行尾
① 在替換對話框,查找內(nèi)容里輸入“abc.*”
② 同時勾選“正則表達式”復選框,然后點擊“全部替換”按鈕
其中,符號的含義如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其實就是正則表達式替換,這里只是把一些曾經(jīng)提出的問題加以整理,單純從正則表達式本身來說,就可以引申出成千上萬種特例。
【2】正則表達式應用——數(shù)字替換
希望把
asdadas123asdasdas456asdasdasd789asdasd
替換為:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd
解決:
[0-9][0-9][0-9] → [\0\1\2]
如果是任意數(shù)字串,則“[0-9]*[0-9]”
【3】正則表達式應用——刪除每一行行尾的指定字符
比如
12345 1265345
2345
需要刪除每行末尾的“345”
解決:
345$ → 空
如果是行首,則前面加“^”
【4】正則表達式應用——替換帶有半角括號的多行
幾百個網(wǎng)頁中都有下面一段代碼,我想把它們都去掉,可是找了很多search & replace的軟件,都是只能對“一行”進行操作。
EditPlus 打開幾百個網(wǎng)頁文件還是比較順暢的,所以完全可以勝任這個工作。
解決
在 Editplus 中使用正則表達式,由于“(”、“)”被用做預設表達式(或者可以稱作子表達式)的標志,所以需要使用 \ 轉(zhuǎn)義。
【5】正則表達式應用——刪除空行
^[ \t]*\n → 空
注意\t前有空格符??崭穹强招械囊粋€組成成分。
另一種方法:[\n]+ → \n
【6】正則表達式應用——中間包含文字替換
如果要替換中間包含某文字的一行,例如包含yahoo,則可使用如下表達式匹配一行內(nèi)容
^.*yahoo.*
【7】正則表達式應用——中間不包含文字替換
如果要替換中間不包含某文字的一行,例如不包含yahoo,則可使用如下表達式匹配一行內(nèi)容
^(?!.*yahoo).*
【8】查找url并提取
www.baidu.com">http://www.baidu.com
解決:
() → \1
(http://.*) →\1
總結(jié):EditPlus對正則表達式的支持有限,不支持 重復頻度 的定義,如:{3}、{3,}、{3,6}...
下面列出EditPlus查找或替換時支持的元字符:
表達式 說明
\t 制表符.
\n 新行.
. 匹配任意字符.
| 匹配表達式左邊和右邊的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".
[] 匹配列表之中的任何單個字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意數(shù)字.
[^] 匹配列表之外的任何單個字符.例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非數(shù)字字符.
* 其左邊的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 其左邊的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".
? 其左邊的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
^ 其右邊的表達式被匹配在一行的開始.例如 "^A" 僅僅匹配以 "A" 開頭的行.
$ 其左邊的表達式被匹配在一行的結(jié)尾. 例如 "e$" 僅僅匹配以 "e" 結(jié)尾的行.
() 影響表達式匹配的順序,并且用作表達式的分組標記.
\ 轉(zhuǎn)義字符. 如果你要使用 "\" 本身, 則應該使用 "\\".