UltraEdit正則表達式介绍及实例
前几天,有个将Excel中的数据导入到数据库中的需求。原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插入语句更easy方便,也不用写不论什么代码。因为我本人使用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正则中,%是表示行首,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3l1bGluZzEyMzQ1Njc4OTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
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 | 匹配一个制表符 |
注意 – ^ 这里所涉及的字符“^”不是控制键 + 值。
UltraEdit正則表達式介绍及实例的更多相关文章
- 使用正則表達式的格式化与高亮显示json字符串
使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...
- JavaScript正則表達式知识汇总
Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...
- js正則表達式语法
1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...
- JAVA中正則表達式总结
昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...
- Perl入门(四)Perl的正則表達式
正則表達式是Perl语言的特色.主要的语法不是非常难,可是编写一个符合需求.高效的正則表達式.还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正則表達式内容/; 作用:查找匹配内容中是 ...
- python 学习笔记 10 -- 正則表達式
零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...
- js中 正則表達式
正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...
- javascript 正則表達式补充
定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- iOS_正則表達式
iOS 正則表達式 正則表達式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE).计算机科学的一个概念. 正則表達式使用单个字符 ...
随机推荐
- HDU 4357
这道题写起来没难度,但这种题确实很难,这种字符串的题难在证明.以后也要注意. 奇偶性不同的字符串肯定不能转换,因为每一次交换都是字符串的和增加2. 当字符串长度为2时,可以模拟交换,最多26次. 否则 ...
- java 微信server录音下载到自己server
/** * @author why * */ public class VoiceDownload { /** * * 依据文件id下载文件 * * * * @param mediaId * * 媒体 ...
- 关于App class loader的总结
关于App class loader的总结 2010-05-11 15:19:09 分类: 系统运维 Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点 ...
- 高校学生学籍系统C++&mysql
/* C++程序设计实践教学环节任务书 一.题目:高校学籍管理系统 二.目的与要求 1. 目的: 1.掌握C++语言基本知识及其编程方法 2.掌握类和对象的基本概念与用法 3.掌握面向对象中的继承与 ...
- Linux多线程实践(一)线程基本概念和理论
线程概念 在一个程序里的一个运行路线就叫做线程(thread).更准确的定义是:线程是"一个进程内部的控制序列/指令序列"; 对于每一个进程至少有一个运行线程; 进程 VS. 线 ...
- [C++设计模式] iterator 迭代器模式
迭代器模式定义:提供一种方法顺序訪问一个聚合对象中各个元素,而又不须要暴露该对象. 迭代器分内部迭代器和外部迭代器.内部迭代器与对象耦合紧密,不推荐使用. 外部迭代器与聚合容器的内部对象松耦合,推荐使 ...
- 0x29 总结与练习
搜索真的菜..困扰了很久,上个星期天没休息好导致整个礼拜没有精神.. 大概完成得七七八八了吧.真是深切的体会到暴力出奇迹的疯狂啊. 3.虫食算 从末位开始枚举判断,通过加数可以推出和的字母代表的数.那 ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 关于HTML与CSS与class
在web前端开发中接触的一直是html.css.javascript. 在这个过程中,经常使用的是html中的span.div元素以及css的选择器. 为了方便查找在这里将这些内容的基础知识记录下来. ...
- Java 开源博客 —— Solo 0.6.9 发布了!
Solo 是 GitHub 上 Star 数最多的 Java 博客系统,今天我们发布了 0.6.9 正式版,欢迎大家下载. 特性 基于标签的文章分类 博客/标签 Atom/RSS.Sitemap 输出 ...