純文本文件(不包括MAC格式)一般有兩種,一種表示行末的是一個“回車+換行”也就是“\r\n”組合,另一種呢,則只有換行,也就是“\n”,這兩種格式,一種是DOS格式,另一種一般是Unix系統(tǒng)使用的,所謂轉(zhuǎn)換成DOS格式就是指這種轉(zhuǎn)換了。
首先,在UE中需要用戶按鍵到“高級”-“配置”-“搜索”-“正則表達(dá)式引擎”中進(jìn)行使用哪一種正則表達(dá)式的選擇。如圖
如果你選中“UltraEdit風(fēng)格正則表達(dá)式”,在以后的搜索和替換功能中就將使用“UltraEdit風(fēng)格正則表達(dá)式”的語法規(guī)則來進(jìn)行操作,其它同理。
現(xiàn)在的版本里面,還加入了“Perl 兼容正則表達(dá)式”,在以后的文章中還有提到。
符號 功能
% 匹配行的開始 - 顯示搜索字符串必須在行的開始,但是在所選擇的結(jié)果字符串中不包括任何行終止字符。
$ 匹配行尾 - 顯示搜索字符串必須在行尾,但是在所選擇的結(jié)果字符串中不包括任何行終止字符。
除了換行符以外匹配任何單個的字符
* 除了換行符匹配任何數(shù)量的字符和數(shù)字
+ 前一字符匹配一個或多個,但至少要出現(xiàn)一個
++ 前一字符匹配零個或多個,但至少要出現(xiàn)一個
^b 匹配一個分頁
^p 匹配一個換行符(CR/LF)(段)(DOS文件)
^r 匹配一個換行符(CR 僅僅)(段)(MAC 文件)
^n 匹配一個換行符 ( LF 僅僅 )( 段 )( UNIX 文件 )
^t 匹配一個標(biāo)簽字符TAB
[] 匹配任何單個的字符,或在方括號中的范圍
^{A^}^{ B^} 匹配表達(dá)式A或 B
^ 重載其后的正規(guī)表達(dá)式字符
^(^) 括或標(biāo)注為用于替換命令的表達(dá)式。
一個正則表達(dá)式最多可以有9個標(biāo)注表達(dá)式, 按正規(guī)表達(dá)式的需要而定。
相應(yīng)的替換表達(dá)式是 ^x , 替換范圍x是1-9。例如:
If ^(h*o^) ^(f*s^) matches "hello folks",
^2 ^1 would replace it with "folks hello".
(hello folks 將被替換成 folks hello。)
注: ^ 是實際字符 ^不是Ctl + 鍵值。
例如:
m?n 匹配 "man","men","min" 但不匹配 "moon".
t*t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te+st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫元音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9, a-z] 匹配任何數(shù)位,或小寫字母。
[~0-9] 除了數(shù)字以外匹配任何字符 (~ 意味著"不")
你按如下方式可以查找一個表達(dá)式A或 B :
"^{John^}^{Tom^}"
這將在找John或Tom的出現(xiàn)。應(yīng)該在 2 個表達(dá)式之間沒有任何東西。
你可以在同一搜索中按如下方式組合A or B and C or D:
"^{John^}^{Tom^}^{Smith^}^{Jones^}"
這將在John or Tom 后面找 Smith or Jones。
下表為"Unix"句法類型的正則表達(dá)式。
正則表達(dá)式 (Unix句法):
符號 功能
標(biāo)記下一個字符作為一個特殊的字符。
"n" 匹配字符"n"。"n" 一個換行符或換行符字符。
^ 匹配/定位行的開始。
$ 匹配/定位行的尾。
* 匹配前面的字符零次或多次。例
+ 匹配前面的字符一次或多次。例
. 匹配除了一個換行符字符匹配任何單個的字符。
(expression)標(biāo)注用于替換命令的表達(dá)式。一個正則表達(dá)式根據(jù)需要,最多可以有9個標(biāo)注表達(dá)式。相應(yīng)的代替表達(dá)式是 x , x的范圍是 1-9 。
例如:
If (h.*o) (f.*s) matches "hello folks",
2 1 would replace it with "folks hello".
(hello folks 將被替換成 folks hello。)
[xyz] 一個字符集。匹配在方括號之間的任何字符。
[^xyz] 一個否定的字符集。不匹配在方括號之間的任何字符。
d 匹配一個數(shù)字字符。等價于[0-9]。
D 匹配一個非數(shù)字字符。等價于[^0-9]。
f 匹配一個換頁字符。
n 匹配一個換行字符。
r 匹配一個回車符字符。
s 匹配任何空白的空格, 標(biāo)簽, 換頁, 包括空格等等,但不匹配換行符。
S 匹配任何非空白的字符,但不匹配換行符。
t 匹配一個標(biāo)簽TAB字符。
v 匹配一個垂直的標(biāo)簽字符。
w 匹配任何詞語字符包括下劃線。
W 匹配任何非詞語字符字符。
注: ^ 是實際字符 ^不是Ctl + 鍵值。
例如:
m.n 匹配 "man","men","min" 但不匹配 "moon".
t+t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te*st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫元音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9,a-z] 匹配任何數(shù)位,或小寫字母。
[^0-9] 除了數(shù)字以外匹配任何字符 (~ 意味著"不")
你按如下方式可以查找一個表達(dá)式A或 B :
"(John)|(Tom)"
這將在找John或Tom的出現(xiàn)。應(yīng)該在 2 個表達(dá)式之間沒有任何東西。
你可以在同一搜索中按如下方式組合A or B and C or D:
"(John|Tom) (Smith|Jones)"
這將在John or Tom 后面找 Smith or Jones。
另外:
p 匹配 CR/LF ( 作為 rn 的一樣 ) 作為DOS行結(jié)束符匹配
如果查找/替換功能中正則表達(dá)式?jīng)]有選用,則替換字段中下列字符也是有效的:
符號 功能
^^ 匹配一個 "^" 字符
^s 替換為被選擇 ( 加亮 ) 活躍的文件窗口的文章。
^c 替換為剪貼板的內(nèi)容
^b 匹配一個頁裂縫
^p 匹配一個換行符 ( CR/LF )( 段 )( DOS 文件)
^r 匹配一個換行符 ( CR 僅僅 )( 段 )( MAC 文件)
^n 匹配一個換行符 ( LF 僅僅 )( 段 )( UNIX 文件)
^t 匹配一個標(biāo)簽TAB字符