Regular in UltraEdit
生活随笔
收集整理的這篇文章主要介紹了
Regular in UltraEdit
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在UltraEdit使用正則表達式實現替換
實現需求的提出: 接到一個由工具導出的數據庫腳本,要求對存在性做判斷, 并且寫一些日志。
分析: 手工工作量太大(幾萬行的腳本),編寫程序過于復雜,決定采用模版加替換的方式。
工具的認識:
UltraEdit有宏的概念, 并且能夠根據進行的操作直接錄制宏,這樣便于跟蹤和再測試,簡化操作過程。
UltraEidt支持正則表達式的替換。
但UltraEidt的正則表達式不是標準的正則表達式, 相關幫助非常缺乏(:目前我都沒有找到\W \s等這些的寫法,極度郁悶(:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其中一個重要和核心的正則式是:
在Find 字符串中查找形如這樣的字串 ^()^()
在Replace字串中可以使用^1^2來取出其中的原字串出來。
如:查找以“ADD INDEX ”開頭, 加一個Index名稱,加一個空格和任何字符的一行。
將其替換為
“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
”
錄制下來的宏如下:
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
轉化為
<SiteId></SiteId>
<SiteName></SiteName>
<StreetAddress></StreetAddress>
可以使用如下正則表達式進行替換
Find:? ^([a-z0-9A_Z_]+^)^(^p^)
Replace: <^1></^1>^2
實現需求的提出: 接到一個由工具導出的數據庫腳本,要求對存在性做判斷, 并且寫一些日志。
分析: 手工工作量太大(幾萬行的腳本),編寫程序過于復雜,決定采用模版加替換的方式。
工具的認識:
UltraEdit有宏的概念, 并且能夠根據進行的操作直接錄制宏,這樣便于跟蹤和再測試,簡化操作過程。
UltraEidt支持正則表達式的替換。
但UltraEidt的正則表達式不是標準的正則表達式, 相關幫助非常缺乏(:目前我都沒有找到\W \s等這些的寫法,極度郁悶(:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其中一個重要和核心的正則式是:
在Find 字符串中查找形如這樣的字串 ^()^()
在Replace字串中可以使用^1^2來取出其中的原字串出來。
如:查找以“ADD INDEX ”開頭, 加一個Index名稱,加一個空格和任何字符的一行。
將其替換為
“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
”
錄制下來的宏如下:
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
轉化為
<SiteId></SiteId>
<SiteName></SiteName>
<StreetAddress></StreetAddress>
可以使用如下正則表達式進行替換
Find:? ^([a-z0-9A_Z_]+^)^(^p^)
Replace: <^1></^1>^2
轉載于:https://www.cnblogs.com/yuanliding_1/archive/2007/01/10/616743.html
總結
以上是生活随笔為你收集整理的Regular in UltraEdit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 Change Notificat
- 下一篇: 想去艾声听力连锁门店验配助听器,在挑选助