UltraEdit正则表达式介绍及实例分享

所属分类: 软件教程 / 经验技巧 阅读数: 1831
收藏 0 赞 0 分享

前几天,有个将Excel中的数据导入到数据库中的需求,原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这样的工具直接将数据拼凑成SQL插入语句更容易方便,也不用写任何代码,由于我本人使用UltraEdit,故考 虑用UltraEdit的正则表达式来做这件事,下面是这样的一个过程。

假设导入的表字段为:name,email, introduce,在Excel中的数据对应的也是这样的字段,值得注意的是:在excel中的数据,比如introduce不能换行,不然的话语句拼凑后会执行会出错。

要拼凑的例子数据如下(从Excel中拷贝并粘贴到UltraEdit中):

张三                            zhangsan@zihou.com              "坐于2004年5月经教育部批准升格为普通本科院校。  "  李四                   lisi@zihou.com                           最专业的图文视频体育赛事直播、报道和‘专家'点评。 

各字段值之间以一个或多个tab键分隔着,操作步骤:

替换按Ctrl+R

1、  先将单引号、双引号之类的字符去掉,这一步不用正则,简单替换即可。

2、  去掉空行:用正则%[ ^t]++^p替换为空字符串,另外,还有^p$也可以,不过在替换的时候,^p$每次只能替换一个空行。

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

4、  替换掉tab键

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

OK,大功告成!这样就拼凑成了正常的SQL插入语句了,感觉是不是很快很容易?

如何学习UltraEdit正则用法?可以通过以下两个方面:

1、  从网上搜些这方面的介绍资料

2、  通过UltraEdit的帮助文档来进行学习

UltraEdit的帮助文档有两方面,一方面是其chm格式的文档、另一方面是其官网的文档。

官网的文档进入方式为:菜单帮助->快速入门指南,在打开的窗口中,点击任一链接都会到其官网帮助文档页面,当然了,如果你到这里了,也可以直接点击下面的链接:

http://www.ultraedit.com/support/tutorials_power_tips/ultraedit.html

chm格式的文档进入方式为:

菜单帮助->使用帮助,或帮助->索引均可,如下图:

在左侧输入“正则表达式”进行查找,就会弹出右侧的窗口,看到有很多的使用介绍吧?你可以选择感兴趣的进去。

下面是从UltraEdit文档中摘录的语法说明

正则表达式 (UltraEdit 语法):

符号 功能
% 匹配行首 – 表示搜索字符串必须在行首,但不包括任何选定的结果字符中的行终止字符。
$ 匹配行尾 – 表示搜索字符串必须在行尾,但不包括任何选定的结果字符中的行终止字符。
? 匹配任何除换行符的字符。
* 匹配任何除换行符外所出现的任意数量的字符。
+ 匹配一个或多个前面的字符/表达式。必须找到至少一个出现的字符。不匹配重复的换行符。
++ 0 次或多次匹配前面的字符/表达式。不匹配重复的换行符。
^b 匹配一个分页符。
^p 匹配一个换行符 (CR/LF) (段落) (DOS 文件)
^r 匹配一个换行符 (仅 CR) (段落) (MAC 文件)
^n 匹配一个换行符 (仅 LF) (段落) (UNIX 文件)
^t 匹配一个制表符
[ ] 匹配任何括号中的单个字符或范围
^{A^}^{B^} 匹配表达式 A 或 B
^ 忽略其后的正则表达式字符
^(*^) 在表达式加上括号或标签在替换命令中使用。正则表达式中可以有 9 个表达式标签,数字根据它们在正则表达式中的次序确定数字。

相应的替换表达式是 ^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] 匹配任何数字或小写字母

[~0-9] 匹配除数字外的任何字符 (~ 表示不匹配其后的内容)

你可以搜索象下面一样的表达式 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 个表达式标签,数字根据它们在正则表达式中的次序确定数字。

相应的替换表达式是 ^x,x 的范围是 1-9。例如: 如果 ^(h*o^) ^(f*s^) 匹配“hello folks”,那么^2 ^1 表示将用“folks hello”替换它。

[xyz] 字符集,匹配任何括号间的字符。.
[^xyz] 排除字符集。匹配任何不在括号间的字符。
\d 匹配一个数字字符。等同于 [0-9]。
\D 匹配一个非数字字符,等同于 [^0-9]。
\f 匹配一个换页符。
\n 匹配一个换行符。
\r 匹配一个回车符。
\s 匹配任何包含空格、制表符等不会显示的字符,但不匹配换行符。
\S 匹配任何非空白区域 (显示字符) 的字符,但不匹配换行符。
\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] 匹配任何数字或小写字母

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

你可以象下面一样的表达式 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 匹配一个制表符

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

更多精彩内容其他人还在看

12306登录不核验第四天不能买票 要买票需重新注册

12306是目前铁道部唯一的一个官方购买的途径,为了防止黄牛党的出现,开始执行手机双向核验,通过手机发送数字到12306得到验证码进行验证
收藏 0 赞 0 分享

铁路客户服务中心12306怎么对手机双向核验?待核验未通过怎么办?

为确保广大旅客的正常出行,保护旅客的个人信息安全,并将购票信息准确送达旅客,12306网站对注册用户手机可联络性进行核验。那么铁路客户服务中心12306怎么对手机双向核验?待核验未通过怎么办?下面小编就为大家介绍一下,来看看吧
收藏 0 赞 0 分享

12306铁路客户服务中心如何订购火车票?订票流程图解

中国铁路服务中心网站是铁路服务客户的重要窗口,将集成全路客货运输信息,为社会和铁路客户提供客货运输业务和公共信息查询服务。那么12306铁路客户服务中心如何订购火车票?下面小编就为大家介绍订票流程,一起来看看吧
收藏 0 赞 0 分享

2016年春运火车票抢票最牛攻略 别忘了返程票

为了能回家过年,大家也是卯足了力气抢票,但是,抢票也是有小技巧的,怎么才能抢到2月7日(春节)之前的票呢?抢到了以后怎么抢返程的票呢?请看下问详细介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

12306怎么购买火车票下铺车票?12306火车票选上下铺的技巧

12306怎么购买火车票下铺车票?购买火车票卧铺的时候,下铺当然是最好的,商铺不好上,中铺太矮,只有下铺最好,但是下铺不好抢,该怎么才能成功抢到火车票下铺票呢?请看下文详细介绍
收藏 0 赞 0 分享

2016春运抢票什么时候开始 2016年春运抢票时间表

很多朋友关心2016春运抢票什么时候开始,今天小编就为大家带来2016年春运抢票时间表,大家抓紧看看吧
收藏 0 赞 0 分享

12306绑定qq邮箱收不到验证码该怎么找回密码?

12306绑定邮箱收不到验证码该怎么找回密码?12306账号的密码丢了,没办法买票,在重置密码的时候,发现qq邮箱收不到重置密码的验证码,该怎办呢?下面分享这个问题的解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

使用12306购买2016年春运火车票新规则及注意事项

准备购买2016年春运火车票的朋友注意啦,12306购票除了新规则及注意事项,主要是用来压制黄牛贩票的,但是正常买票的朋友要遭殃了,下面我们来看看使用12306购买2016年春运火车票新规则及注意事项
收藏 0 赞 0 分享

12306公告:2016年春运火车票首日订票开始了

2016年的春运火车票今天开始售票啦,我们可以通过三种不同的途径来购买,但是必须注意,不同渠道售票期不同,最长预售期为60天;最短预售期为40天,需要的朋友可以进来参考一下
收藏 0 赞 0 分享

12306身份证被别人注册了怎么办 12306身份证被注册解决办法

12306身份证被别人注册了怎么办呢?注册账号时,系统提示身份证信息重复并非本人使用时,该怎么解决呢?或者系统显示身份证被注册了怎么办呢
收藏 0 赞 0 分享
查看更多