西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → UltraEdit正則表達式文本替換-在UltraEdit中使用正則表達式

UltraEdit正則表達式文本替換-在UltraEdit中使用正則表達式

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2014/10/24 9:25:41字體大小:A-A+

作者:西西點擊:2041次評論:0次標簽: UltraEdit

IDM UltraEdit注冊機v22.20 最新版
  • 類型:文本編輯大。57.5M語言:中文 評分:5.2
  • 標簽:
立即下載

很多朋友都用過或者正在用UltraEdit,這個編輯器陪伴我也好幾年了,從很多地方影響著我寫代碼的快捷鍵習慣,Ultraedit提供了非常豐富的編輯功能,其中非常重要的查找和替換功能一定大家都用過,UltraEdit正則表達式的查找替換功能非常方便和強大,可以在單獨文件里面查找替換。

UltraEdit-32
4.5
類別: 編程輔助    大。33.8M    語言: 中文
查看詳細信息 >>

正則表達式 (UltraEdit Syntax): 
% 匹配行首 - 表明要搜索的字符串一定在行首. 
$ 匹配行尾 - 表明要搜索的字符串一定在行尾 
? 匹配除換行符外的任一單個字符. 
* 匹配任意個數(shù)的字符出現(xiàn)任意次數(shù)(不包括換行符) 
+ 匹配前導字符或者表達式出現(xiàn)一次或者更多次(不包括換行符) 
++ 匹配前導字符或者表達式不出現(xiàn)或者出現(xiàn)一次以上(不包括換行符) 
^b 匹配頁中斷符 
^p 匹配DOS文件的換行符 
^r 匹配MAC文件的換行符(CR Only) 
^n 匹配UNIX文件的換行符 (LF Only) 
^t 匹配一個制表符 
[ ] 匹配方括號中的單個的字符

常用正則表達式:
刪除空行: 替換 %[ ^t]++^p 為 空串 

刪除行尾空格: 替換 [ ^t]+$ 為 空串 

刪除行首空格: 替換 %[ ^t]+ 為 空串 

每行設置為固定的4個空格開頭: 替換 %[ ^t]++^([~ ^t^p]^) 為 " ^1" 

每段設置為固定的4個空格開頭: 替換 %[ ^t]+ 為 " " 
(如果一行是以空格開始的,則視之為一段的開始行) 

將一段合并為一行: 替換 [ ^t]++^p^([~ ^t^p]^) 為 ^1 
(注意: 此處假定文本是以DOS方式回車換行 - CR/LF) 

去掉HTML TAG: 替換 ^{<*>^}^{<*^p*>^} 為 空串 

刪除HTML中的所有<A>: 替換 <[ ]++a *[ ]++href[ ]++=*> 為 空串 

刪除文本中指定的前2列字符: 替換 %?? 為 空串 

在第4列后插入2列空白字符: 替換 %^(????^)^(?^) 為 "^1 ^2" 

查找所有的數(shù)字: [0-9]+[.]++[0-9]+ 

查找所有的單詞: [a-z]+ 

查找所有的網址: http://[a-z0-9^~`_./^-^?=&]+ 

注意: 替換的時候需要勾選使用正則表達式選項 
在UltraEdit配置中的正則表達式引擎中挑上使用UltraEdit風格,13版本使用Unix風格不能使用正則表達式分組功能

語法集合一: 
符號 功能 
% 匹配行的開始 - 顯示搜索字符串必須在行的開始,但是在所選擇的結果字符串中不包括任何行終止字符。 
$ 匹配行尾 - 顯示搜索字符串必須在行尾,但是在所選擇的結果字符串中不包括任何行終止字符。 
? 除了換行符以外匹配任何單個的字符 
* 除了換行符匹配任何數(shù)量的字符和數(shù)字 
+ 前一字符匹配一個或多個,但至少要出現(xiàn)一個 
++ 前一字符匹配零個或多個,但至少要出現(xiàn)一個 
^b 匹配一個分頁 
^p 匹配一個換行符(CR/LF)(段)(DOS文件) 
^r 匹配一個換行符(CR 僅僅)(段)(MAC 文件) 
^n 匹配一個換行符 ( LF 僅僅 )( 段 )( UNIX 文件 ) 
^t 匹配一個標簽字符TAB 
[] 匹配任何單個的字符,或在方括號中的范圍 
^{A^}^{ B^} 匹配表達式A或 B 
^ 重載其后的正規(guī)表達式字符 
^(^) 括或標注為用于替換命令的表達式。 

一個正則表達式最多可以有9個標注表達式, 按正規(guī)表達式的需要而定。 

相應的替換表達式是 ^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ù)字以外匹配任何字符 (~ 意味著”不”) 
你按如下方式可以查找一個表達式A或 B : 
“^{John^}^{Tom^}” 
這將在找John或Tom的出現(xiàn)。應該在 2 個表達式之間沒有任何東西。 
你可以在同一搜索中按如下方式組合A or B and C or D: 
“^{John^}^{Tom^}^{Smith^}^{Jones^}” 
這將在John or Tom 后面找 Smith or Jones。 

語法二:”Unix”句法類型的正則表達式 
符號 功能 
\ 標記下一個字符作為一個特殊的字符。 
"n" 匹配字符"n"。"n" 一個換行符或換行符字符。 
^ 匹配/定位行的開始。 
$ 匹配/定位行的尾。 
* 匹配前面的字符零次或多次。例 
+ 匹配前面的字符一次或多次。例 
. 匹配除了一個換行符字符匹配任何單個的字符。 
(expression)標注用于替換命令的表達式。一個正則表達式根據(jù)需要,最多可以有9個標注表達式。相應的代替表達式是 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 匹配任何空白的空格, 標簽, 換頁, 包括空格等等,但不匹配換行符。 
\S 匹配任何非空白的字符,但不匹配換行符。 
\t 匹配一個標簽TAB字符。 
\v 匹配一個垂直的標簽字符。 
\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ù)字以外匹配任何字符 (~ 意味著”不”) 
你按如下方式可以查找一個表達式A或 B : 
“(John)|(Tom)” 
這將在找John或Tom的出現(xiàn)。應該在 2 個表達式之間沒有任何東西。 
你可以在同一搜索中按如下方式組合A or B and C or D: 
“(John|Tom) (Smith|Jones)” 
這將在John or Tom 后面找 Smith or Jones。 
另外: 
p 匹配 CR/LF ( 作為 rn 的一樣 ) 作為DOS行結束符匹配 
如果查找/替換功能中正則表達式沒有選用,則替換字段中下列字符也是有效的: 
符號 功能 
^^ 匹配一個 “^” 字符 
^s 替換為被選擇 ( 加亮 ) 活躍的文件窗口的文章。 
^c 替換為剪貼板的內容 
^b 匹配一個頁裂縫 
^p 匹配一個換行符 ( CR/LF )( 段 )( DOS 文件) 
^r 匹配一個換行符 ( CR 僅僅 )( 段 )( MAC 文件) 
^n 匹配一個換行符 ( LF 僅僅 )( 段 )( UNIX 文件) 
^t 匹配一個標簽TAB字符

Ultraedit正則式實例:
下面是我要實現(xiàn)的一段代碼查詢替換的舉例 
有這樣一段代碼分布在各個html文件中

代碼如下:

<!-- Copyright ?2014. toplee Ltd --> 
<style> 
A.applink:hover {border: 2px dotted #DCE6F4;padding:2px;background-color:#ffff00;color:green;text-decoration:none} 
A.applink {border: 2px dotted #DCE6F4;padding:2px;color:#2F5BFF;background:transparent;text-decoration:none} 
A.info {color:#2F5BFF;background:transparent;text-decoration:none} 
A.info:hover {color:green;background:transparent;text-decoration:underline} 
</style> 
<div style='BORDER: 1px solid #DCE6F4; MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px; MARGIN-LEFT: 5px; 
.... 省略若干行.... 
<!-- /Copyright ?2014. toplee Ltd --> 

我要把上面一段代碼替換為空,于是編寫下面的匹配規(guī)則 
<!– Copyright[^!]*[^>]*> 
即完成了全部替換。

UltraEdit正則表達式實例:

有個將Excel中的數(shù)據(jù)導入到數(shù)據(jù)庫中的需求,原本想到用程序讀取Excel中的數(shù)據(jù)并存儲到數(shù)據(jù)庫中,但經一哥們的提醒,說用 EditPlus或UltraEdit這樣的工具直接將數(shù)據(jù)拼湊成SQL插入語句更容易方便,也不用寫任何代碼,由于我本人使用UltraEdit,故考 慮用UltraEdit的正則表達式來做這件事,下面是這樣的一個過程。

假設導入的表字段為:name,email, introduce,在Excel中的數(shù)據(jù)對應的也是這樣的字段,值得注意的是:在excel中的數(shù)據(jù),比如introduce不能換行,不然的話語句拼湊后會執(zhí)行會出錯。

要拼湊的例子數(shù)據(jù)如下(從Excel中拷貝并粘貼到UltraEdit中):

張三      zhangsan@zihou.com       "坐于2004年5月經教育部批準升格為普通本科院校。  "  李四           lisi@zihou.com      最專業(yè)的圖文視頻體育賽事直播、報道和‘專家'點評。

各字段值之間以一個或多個tab鍵分隔著,操作步驟:

替換按Ctrl+R

1、  先將單引號、雙引號之類的字符去掉,這一步不用正則,簡單替換即可。

2、  去掉空行:用正則%[ ^t]++^p替換為空字符串,另外,還有^p$也可以,不過在替換的時候,^p$每次只能替換一個空行。

3、  在每行的最前面增加:insert into test(name,email,introduce)values(‘,在UltraEdit正則中,%是表示行首,如下圖:

4、  替換掉tab鍵

5、  最后在行尾加入’);

OK,大功告成!這樣就拼湊成了正常的SQL插入語句了,感覺是不是很快很容易?

正則表達式 (UltraEdit 語法):

符號
功能
%
匹配行首 – 表示搜索字符串必須在行首,但不包括任何選定的結果字符中的行終止字符。
$
匹配行尾 – 表示搜索字符串必須在行尾,但不包括任何選定的結果字符中的行終止字符。
?
匹配任何除換行符的字符。
*
匹配任何除換行符外所出現(xiàn)的任意數(shù)量的字符。
+
匹配一個或多個前面的字符/表達式。必須找到至少一個出現(xiàn)的字符。不匹配重復的換行符。
++
0 次或多次匹配前面的字符/表達式。不匹配重復的換行符。
^b
匹配一個分頁符。
^p
匹配一個換行符 (CR/LF) (段落) (DOS 文件)
^r
匹配一個換行符 (僅 CR) (段落) (MAC 文件)
^n
匹配一個換行符 (僅 LF) (段落) (UNIX 文件)
^t
匹配一個制表符
[ ]
匹配任何括號中的單個字符或范圍
^{A^}^{B^}
匹配表達式 A 或 B
^
忽略其后的正則表達式字符
^(*^)
在表達式加上括號或標簽在替換命令中使用。正則表達式中可以有 9 個表達式標簽,數(shù)字根據(jù)它們在正則表達式中的次序確定數(shù)字。
相應的替換表達式是 ^x,x 的范圍是 1-9。例如: 如果 ^(h*o^) ^(f*s^) 匹配“hello folks”,那么^2 ^1 表示將用“folks hello”替換它。

注意 – ^ 這里涉及的字符“^”不是控制鍵 + 值。

例如:

m?n 匹配“man”、“men”、“min”,但不匹配“moon”。

t*t 匹配“test”、“tonight”和“tea time”中的“tea t”部分,但不匹配“tea

time” (“tea ”和“time”之間有換行)。

Te+st 匹配“test”、“teest”、“teeeest”等,但不匹配“tst”。

[aeiou] 匹配每個元音小寫字母

[,.?] 匹配文字“,”、“.”或“?”。

[0-9a-z] 匹配任何數(shù)字或小寫字母

[~0-9] 匹配除數(shù)字外的任何字符 (~ 表示不匹配其后的內容)

你可以搜索象下面一樣的表達式 A 或 B:

“^{John^}^{Tom^}

這將搜索 John 或 Tom。在兩個表達式之間應該沒有任何其它內容。

你可以在同一次搜索象下面一樣組合 A 或 B 和 C 或 D:

“^{John^}^{Tom^} ^{Smith^}^{Jones^}”

這將搜索后面跟隨了 Smith 或 Jones 的 John 或 Tom。

下面的表顯示“Unix”樣式的正則表達式語法。

正則表達式 (Unix 語法):

符號
功能
\
表示下一個字符有特殊含義。“n”表示匹配字符“n”,“\n”匹配一換行符。看下面的例子 (\d、\f、\n 等)。
^
匹配/停駐行首。
$
匹配/停駐行尾。
*
匹配前面的字符 0 次或多次。
+
匹配前面的字符一次或多次。不匹配重復的換行符。
.
匹配任何除換行符之外的單個字符。不匹配重復的換行符。
(表達式)
在表達式加上括號或標簽在替換命令中使用。正則表達式中可以有 9 個表達式標簽,數(shù)字根據(jù)它們在正則表達式中的次序確定數(shù)字。
相應的替換表達式是 ^x,x 的范圍是 1-9。例如: 如果 ^(h*o^) ^(f*s^) 匹配“hello folks”,那么^2 ^1 表示將用“folks hello”替換它。
[xyz]
字符集,匹配任何括號間的字符。.
[^xyz]
排除字符集。匹配任何不在括號間的字符。
\d
匹配一個數(shù)字字符。等同于 [0-9]。
\D
匹配一個非數(shù)字字符,等同于 [^0-9]。
\f
匹配一個換頁符。
\n
匹配一個換行符。
\r
匹配一個回車符。
\s
匹配任何包含空格、制表符等不會顯示的字符,但不匹配換行符。
\S
匹配任何非空白區(qū)域 (顯示字符) 的字符,但不匹配換行符。
\t
匹配一個制表符。
\v
匹配一個垂直制表符。
\w
匹配任何包含下劃線的詞語。
\W
匹配任何非詞語的字符。
\p
匹配 CR/LF (等同于 \r\n),用來匹配 DOS 行終止符。

注意 – ^ 這里所涉及的字符“^”不是控制鍵 + 值。

例如:

m.n 匹配“man”、“men”、“min”,但不匹配“moon”。

Te+st 匹配“test”、“teest”、“teeeest”等,但不匹配“tst”。

Te*st 匹配“test”、“teest”、“teeeest”等,還有“tst”。

[aeiou] 匹配每個元音小寫字母

[,.?] 匹配文字“,”、“.”或“?”。

[0-9a-z] 匹配任何數(shù)字或小寫字母

[^0-9] 匹配除數(shù)字外的任何字符 (~ 表示不匹配其后的內容)

你可以象下面一樣的表達式 A 或 B 進行搜索:

“(John|Tom)”

這將搜索 John 或 Tom。在兩個表達式之間應該沒有任何其它內容。

你可以在同一次搜索象下面一樣組合 A 或 B 和 C 或 D:

“(John|Tom) (Smith|Jones)”

這將搜索 Smith 或 Jones 以及跟隨在后面的 John 或 Tom。

如果在查找/替換中沒有選擇使用正則表達式,在替換對象中下列特殊字符同樣有效:

符號
功能
^^
匹配字符“^”
^s
表示活動文件窗口中選定 (加亮) 的文字。
^c
表示剪貼表的內容。
^b
匹配一個分頁符。
^p
匹配一個換行符 (CR/LF) (段落) (DOS 文件)
^r
匹配一個換行符 (僅 CR) (段落) (MAC 文件)
^n
匹配一個換行符 (僅 LF) (段落) (UNIX 文件)
^t
匹配一個制表符

注意 – ^ 這里所涉及的字符“^”不是控制鍵 + 值。

    排版軟件
    (14)排版軟件
    一款好的排版軟件,可以讓你的日常辦公簡單快捷事半功倍當然主要是面向編輯,排版軟件是一款廣受編輯追捧的智能排版整理文章的軟件,該軟件短小精悍,無需安裝即可使用。適合新聞采集員編輯文摘網及有文章排版需求者。一般的排版軟件具有以下功能禁排要求,圖形繪制功能強底紋多變換功能強。的特色有能輸出及文件,圖層管理色彩管理功能強,圖文鏈接表格制作功能獨特,F(xiàn)在一般報社用方正飛騰排版布局,挺簡單的,但圖片需要單獨處...更多>>
    • Adobe InDesign CS68.0 綠色中文精

      02-06 / 141M

      推薦理由:Adobe CS6 系列中的 Adobe InDesign CS6 軟件是能夠幫您優(yōu)化設計和排版像素的多功能桌面出版軟件。創(chuàng)建用于
    • 方正飛騰排版軟件4.1 官方正版

      06-12 / 346.7M

      推薦理由:方正飛騰排版軟件是國內常見的排版軟件之一,集中了方正在排版領域的優(yōu)勢和領先的技術,已經在國內外的很多
    • CorelDRAW X4簡體中文正式版

      05-15 / 520.8M

      推薦理由:CorelDRAWGraphicsSuiteX4可為當今繁忙的設計者們提供所有必需的工具。使用直觀的矢量插圖和頁面布局工具創(chuàng)
    • OFFICE 2003綠色精簡版

      09-19 / 22.0M

      推薦理由:最精簡的OFFICE2003綠色經典版里面集成了Excel、Word、PowerPoint、PowerPoint Viewer。壓縮包內一共不到40
    • 金印客2011個性排版軟件0513 官方正

      05-21 / 10.0M

      推薦理由:免費、功能強大、簡單易用面向大眾的個性化印刷排版軟件01、文字處理強大的文字處理功能,支持文字橫排、豎
    • 方正飛騰4.1免狗版完整版

      06-03 / 424.2M

      推薦理由:作為業(yè)內權威的排版軟件,方正飛騰的目標是為客戶提供全方位專業(yè)的印前排版處理功能。無論是報社、出版社、
    代碼編輯器
    (17)代碼編輯器
    西西軟件園提供一些非常好用的代碼編輯器免費下載,都是一些非常有特色的編輯器,軟件小巧高效,支持種編程語言,通吃,,,,,,,等。是開源軟件,可以免費使用。...更多>>
    文本處理軟件
    (10)文本處理軟件
    西西軟件園提供好用的文本處理軟件,常用的就是以及國產的,還有一些自主開發(fā)的專業(yè)文本處理軟件,主要就是文本編輯,剪切,拆分,刪除等等功能。不論是日常使用還是手寫編程代碼,都能讓你體會到它獨有的優(yōu)勢和方便。...更多>>

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經過審核才能顯示)