UltraEdit正則表達式介绍及实例

前几天,有个将Excel中的数据导入到数据库中的需求。原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插入语句更easy方便,也不用写不论什么代码。因为我本人使用UltraEdit,故考 虑用UltraEdit的正則表達式来做这件事,以下是这种一个过程。

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

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

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

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

替换按Ctrl+R

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

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3l1bGluZzEyMzQ1Njc4OTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

4、  替换掉tab键

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

OK,大功告成。这样就拼凑成了正常的SQL插入语句了。感觉是不是非常快非常easy?

怎样学习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 匹配一个制表符

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

时间: 2024-11-05 18:42:31

UltraEdit正則表達式介绍及实例的相关文章

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

正則表達式基本使用方法简单介绍

正則表達式非常实用, 有些书专门用整本书来讲这个, 可见其博大精深. 有人的地方就有江湖. 有字符串的地方就有正則表達式.所谓的正則表達式, 只是是一种模式/形式罢了. 说白了, 就是一个字符串形式. 没那么玄乎其玄. 我们之前介绍过的grep, sed和awk是一种文本/字符串处理工具. 而正則表達式却不同. 它仅仅是一种字符串形式. 我们能够用grep, sed和awk对正則表達式进行处理. 为了方便集中介绍正則表達式, 我们用最简单的grep来做处理工具. 正則表達式也不同于通配符. 虽然

经验之谈—正則表達式实现图文混排

在项目中,我们常常须要发表情,以及常常须要将表情字符转换成表情.由于表情是一个图片.所以我们发给server的时候,实际上是发一段特殊的文字给server,然后转换成表情.以免浪费用户过多的流量. 那接下来.我们就来介绍一下,怎样使用正則表達式实现图文混排呢? 为了以后的代码的管理方便,我们抽取出两个类: NSString+Regular.h中.我们暴露两个方法出来: /** * 返回正則表達式匹配的第一个结果 * * @param pattern 正則表達式 * * @return 匹配的第一

js正則表達式语法

1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:開始于2,结束于3.(注:下标从0開始还是从1開始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&

shell脚本学习笔记 (正則表達式)

正則表達式一般有三个部分组成,他们各自是:字符类,数量限定符,位置限定符. 规定一些特殊语法表示字符类.数 量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正則表達式(Regular Expression). 我们以一 个样例開始吧.假如给你一个文件,里面存放的是IP地址,可是有一些不是合格的.请你找出合格的IP地址.我想不知道正 则表达式的人一定会认为好陌生,我拿一个循环去实现,我之前也被问到过这个问题,也是想着拿循环来完毕.写出一个函 数来实现这个查找功能实在是不简单

Perl入门(四)Perl的正則表達式

正則表達式是Perl语言的特色.主要的语法不是非常难,可是编写一个符合需求.高效的正則表達式.还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正則表達式内容/; 作用:查找匹配内容中是否包括"正則表達式内容",假设包括返回1,否则返回0: #!user/bin/env perl -w #1... $str1 = "i like perl"; $result1 = ($str1 =~ m/perl/); print "$result1 $st

Python——正則表達式(2)

本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ====================================================================================== 3.使用正則表達式 如今.我们已经学习了一些简单的正則表達式,但我们应该怎么在Python中使用它们呢?re模块提供了一个连接正則表達式引擎的接口,同意你将RE编译成对象并利

[iOS]经常使用正則表達式

经常使用正則表達式大全!(比如:匹配中文.匹配html) 匹配中文字符的正則表達式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包含汉字在内):[^x00-xff] 评注:能够用来计算字符串的长度(一个双字节字符长度计2.ASCII字符计1) 匹配空白行的正則表達式:ns*r 评注:能够用来删除空白行 匹配HTML标记的正則表達式:<(S*? )[^>]*>.*?|<.*? /> 评注:网上流传的版本号太糟糕,上面这个

JavaScript使用正則表達式

2.0 简单介绍 正則表達式是能够用来查找与给定模式匹配的文本的搜索模式.比如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This is the Cookbook's test string"; var subsValue = "Cookbook"; var iValue = testValue.indexOf(subsValue); //返回值12.即子字符串的索引 这段代码有效.由于我们要查找一个严格的