Regular in UltraEdit

本文介绍如何使用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

转载于:https://www.cnblogs.com/yuanliding_1/archive/2007/01/10/616743.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值