Regular in UltraEdit
生活随笔
收集整理的這篇文章主要介紹了
Regular in UltraEdit
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在UltraEdit使用正則表達(dá)式實(shí)現(xiàn)替換
實(shí)現(xiàn)需求的提出: 接到一個(gè)由工具導(dǎo)出的數(shù)據(jù)庫(kù)腳本,要求對(duì)存在性做判斷, 并且寫一些日志。
分析: 手工工作量太大(幾萬(wàn)行的腳本),編寫程序過于復(fù)雜,決定采用模版加替換的方式。
工具的認(rèn)識(shí):
UltraEdit有宏的概念, 并且能夠根據(jù)進(jìn)行的操作直接錄制宏,這樣便于跟蹤和再測(cè)試,簡(jiǎn)化操作過程。
UltraEidt支持正則表達(dá)式的替換。
但UltraEidt的正則表達(dá)式不是標(biāo)準(zhǔn)的正則表達(dá)式, 相關(guān)幫助非常缺乏(:目前我都沒有找到\W \s等這些的寫法,極度郁悶(:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其中一個(gè)重要和核心的正則式是:
在Find 字符串中查找形如這樣的字串 ^()^()
在Replace字串中可以使用^1^2來(lái)取出其中的原字串出來(lái)。
如:查找以“ADD INDEX ”開頭, 加一個(gè)Index名稱,加一個(gè)空格和任何字符的一行。
將其替換為
“Begin Index名稱
原字符串
Index名稱 End
”
那么
“ADD INDEX BIN_LOCATION_DETAILS_1 /TABLE=BIN_LOCATION_DETAILS”
將被替換成
“Begin BIN_LOCATION_DETAILS_1
ADD INDEX BIN_LOCATION_DETAILS_1 /TABLE=BIN_LOCATION_DETAILS
BIN_LOCATION_DETAILS_1 End
”
錄制下來(lái)的宏如下:
Find String
^(%ADD INDEX ^)^([a-z0-9A_Z_]+^)^( *^p^)
Replace Test
Begin ^2 ^p ^1^2^3 ^p^2 End^p
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
另外
以!開頭的這一行 %!*^p^
Ctrl + A 然后Ctrl+Tab的多次操作,如果用宏可表示為下
Find RegExp "%[ ^t]+"
Replace All ""
-------------------------------------------------------------------
例如: 如何將
SiteId
SiteName
StreetAddress
轉(zhuǎn)化為
<SiteId></SiteId>
<SiteName></SiteName>
<StreetAddress></StreetAddress>
可以使用如下正則表達(dá)式進(jìn)行替換
Find:? ^([a-z0-9A_Z_]+^)^(^p^)
Replace: <^1></^1>^2
實(shí)現(xiàn)需求的提出: 接到一個(gè)由工具導(dǎo)出的數(shù)據(jù)庫(kù)腳本,要求對(duì)存在性做判斷, 并且寫一些日志。
分析: 手工工作量太大(幾萬(wàn)行的腳本),編寫程序過于復(fù)雜,決定采用模版加替換的方式。
工具的認(rèn)識(shí):
UltraEdit有宏的概念, 并且能夠根據(jù)進(jìn)行的操作直接錄制宏,這樣便于跟蹤和再測(cè)試,簡(jiǎn)化操作過程。
UltraEidt支持正則表達(dá)式的替換。
但UltraEidt的正則表達(dá)式不是標(biāo)準(zhǔn)的正則表達(dá)式, 相關(guān)幫助非常缺乏(:目前我都沒有找到\W \s等這些的寫法,極度郁悶(:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其中一個(gè)重要和核心的正則式是:
在Find 字符串中查找形如這樣的字串 ^()^()
在Replace字串中可以使用^1^2來(lái)取出其中的原字串出來(lái)。
如:查找以“ADD INDEX ”開頭, 加一個(gè)Index名稱,加一個(gè)空格和任何字符的一行。
將其替換為
“Begin Index名稱
原字符串
Index名稱 End
”
那么
“ADD INDEX BIN_LOCATION_DETAILS_1 /TABLE=BIN_LOCATION_DETAILS”
將被替換成
“Begin BIN_LOCATION_DETAILS_1
ADD INDEX BIN_LOCATION_DETAILS_1 /TABLE=BIN_LOCATION_DETAILS
BIN_LOCATION_DETAILS_1 End
”
錄制下來(lái)的宏如下:
Find String
^(%ADD INDEX ^)^([a-z0-9A_Z_]+^)^( *^p^)
Replace Test
Begin ^2 ^p ^1^2^3 ^p^2 End^p
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
另外
以!開頭的這一行 %!*^p^
Ctrl + A 然后Ctrl+Tab的多次操作,如果用宏可表示為下
Find RegExp "%[ ^t]+"
Replace All ""
-------------------------------------------------------------------
例如: 如何將
SiteId
SiteName
StreetAddress
轉(zhuǎn)化為
<SiteId></SiteId>
<SiteName></SiteName>
<StreetAddress></StreetAddress>
可以使用如下正則表達(dá)式進(jìn)行替換
Find:? ^([a-z0-9A_Z_]+^)^(^p^)
Replace: <^1></^1>^2
轉(zhuǎn)載于:https://www.cnblogs.com/yuanliding_1/archive/2007/01/10/616743.html
總結(jié)
以上是生活随笔為你收集整理的Regular in UltraEdit的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 Change Notificat
- 下一篇: 想去艾声听力连锁门店验配助听器,在挑选助