【转】UltraEdit正则表达式介绍及实例

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
转自:http://blog.163.com/jekyll_zhou@126/blog/static/18204738201232732538730/

前几天,有个将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匹配一个制表符

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

<Windows>《UltraEdit 编辑器之正则表达式(高级查找与替换)》 UltraEdit 正则表达式 阅读详情

相关推荐

基于POI-TL实现动态Word模板数据填充(含图表):从需求到落地的完整开发实践

本文聚焦企业级报告生成场景中 “在线编辑模板 + 动态数据填充” 的核心需求,详细阐述基于 POI-TL、OnlyOffice 与 MinIO 的全栈实现方案。通过代码示例拆解模板载、文字填充、图表匹配渲染(含通过关系 ID 关联图表与段落的关键逻辑)、报告存储全步骤。最终通过技术组合实现业务人员可视化编辑模板、后端高效填充数据的目标,为同类动态 Word 生成需求提供可复用的实践参考。

imHanweihu的博客 1811

UltraEdit使用技巧——使用正则表达式,在每行末尾添指定字符

https://my.oschina.net/afengzxf/blog/3054221 Tip 2: 如何在行末添特定字符,比如逗号? 有了上面的经验(其实我第一次是从同事那里学到的),CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式".然后可以查找 p(或者n,如果是Unix 文件),用 ,p(或者,n)进行"全部替换"即可.补充一点,如果是 MAC(Apple) 类型文件,则换行符号为 ^r . ...

lianflower的博客 8097

深入解析HAL_UART_Receive_IT:如何高效配置串口中断接收

本文深入解析了STM32 HAL库中`HAL_UART_Receive_IT`函数的工作原理与高效配置方法。该函数并非直接接收数据,而是作为中断接收的启动器和配置器,通过开启相关中断,由`UART_Receive_IT`在后台完成数据搬运。文章详细对比了中断与轮询模式的区别,并提供了不定长数据接收的完整实战流程、常见问题避坑指南及高级应用技巧,帮助开发者构建稳定高效的串口通信。

weixin_29162439的博客 567

UE(UltraEdit)三步完成首行至末行每行行尾都有光标的快捷键

** UE(UltraEdit)三步完成首行至末行每行行尾都有光标的快捷键 ** 1、按住ctrl键,在首行行尾单击鼠标左键; 2、保持上一步的ctr不放手,再增按住shift键,在最后一行行尾单击鼠标左键; 3、松开shiftj键,继续保持ctrl键不放手,在最后一行行尾单击鼠标。 如图一所示: 整列光标有以下的用途: 1、在每行相同列增或删除相同字符。 每一行行末都有光标后,可以用左右箭头、HOME以及END键移动整列光标到需要增或删除字符的列,然后进行编辑操作。 2、合并多行。 将整列光标移至

chunxiaochan的博客 5063

UltraEdit批量给每行开头结尾添相同字符的方法步骤

描述:UltraEdit批量给每行开头结尾添相同字符的方法步骤 步骤: 按住Alt+c进入列模式 光标点击开始行,按住shift点结束行 输入字符

随心分享 5140

UE C++基础 | 正则表达式

UE C++基础 | 正则表达式

ryacber的博客 842

UltraEdit正则表达式搜索替换小技巧

 由于需要,要将Admodfy导出来的ldf文件内容做修改,样例如下 dn: CN=蔡妮,OU=AD Import OU,DC=myDomain,DC=com,DC=cnchangetype: addobjectClass: contactcn: 蔡妮sn: 蔡妮mailNickname: lily.caitargetAddress: lily.cai@myDomain.com.c

Aceryt 9902

UltraEdit正则表达式介绍实例

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

wangyuling1234567890的专栏 1365

UltraEdit正則表達式介绍实例

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

aodiyi6351的博客 146

ultraedit介绍及使用教程

ultraedit介绍及使用教程 一、介绍 文本编辑器软件 二、使用教程 (一)快捷方式使用 隐藏或显示菜单——Ctrl+F1 设定书签——Ctrl+F2 ​ 定位作用,给对应的行高亮,方便下次查找该行,查找时直接按F2就能跳到设定了书签的行。 查找上/下一个出现的字符串——Ctrl+F3/F3 文件另存为——Ctrl+F4 换所选文字为小写——Ctrl+F5 换所...

weixin_43748802的博客 1万+

UltraEdit正则表达式文本替换

UltraEdit风格正则表达式语法 1、% 功能说明: 匹配一行的开始位置。这个符号表示所寻找的字符在每一行的开始的位置,不包括每一行其上一行的结束字符。 2、$ 功能说明:匹配一行的结束位置。这个符号表示所寻找的字符在每一行的结束的位置。这个$和上面说的“行头”恰恰相反,它是“行尾”。 3、? 功能说明:匹配每一个字符,除了“换行符”以外。 4、* 功能说明:匹配任意个数的任何

Vindak's DBA Life 1万+

ultraedit正则表达式

一般使用ultraedit中的Perl风格的正则表达式,下面是perl正则的基本语法 perl中的元字符如下:   ^    表示一行的开头; $     表示一行的结尾; ( )   表示一个匹配块的,可以对匹配上的块通过$1,$2...进行读取,但是无法写;$0表示这个perl文件 /     表示用来进行义的意思,比如/n表示换行符;

小米拍客光 2616

ultraedit 正则表达式

UltraEdit风格正则表达式语法 1、% 功能说明: 匹配一行的开始位置。这个符号表示所寻找的字符在每一行的开始的位置,不包括每一行其上一行的结束字符。 2、$ 功能说明:匹配一行的结束位置。这个符号表示所寻找的字符在每一行的结束的位置。这个$和上面说的“行头”恰恰相反,它是“行尾”。 3、? 功能说明:匹配每一个字符,除了“换行符”以外。 4、* 功能说明:匹配任意个数的任何...

weixin_34119545的博客 1156

UltraEdit正则表达式UltraEdit Syntax)

以下是常用的UE 技巧1)删除空行: 替换 %[ ^t]++^p 为 空串 2)删除行尾空格: 替换 [ ^t]+$ 为 空串 3)删除行首空格: 替换 %[ ^t]+ 为 空串4)每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1" 5)每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " " (如果一行是以空格开始的,则视之为一段的开始行) 6...

志存高远 5432

UltraEdit正则表达式使用

正则表达式 (UltraEdit 语法): % 匹配行首 - 表示搜索字符串必须在行首,但不包括任何选定的结果字符中的行终止字符。 $ 匹配行尾 - 表示搜索字符串必须在行尾,但不包括任何选定的结果字符中的行终止字符。 ? 匹配任何除换行符的字符。 * 匹配任何除换行符外所出现的任意数量的字符。 + 匹配一个或多个面的字符/表达式。必须找到至少一个出现的字符。不匹配重复的换行符。 ++ 0 次或多次匹配面的字符/表达式。不匹配重复的换行符。 ^b 匹配一个分页符。 ^p 匹配一个换行符 (CR/LF

BabyFish13 5770

UltraEdit中正则替换

  网上已经有很多关于UltraEdit正则的文章了,但基本上都是UltraEdit的帮助文档的内容,对于如何进行用正则表达式进行批量替换并无详细说明。在开发中我们经常要进行某种规则的替换,这里就要用到UltraEdit强大的正则功能。  UltraEdit支持两种风格的正则表达式,1.“UltraEdit风格正则表达式”,2.“UNIX 样式正则表达式”,默认为“UltraEdit风格正则表达式

ToTem's BLOG 3114

[]UltraEdit正则表达式

UltraEdit(后简称UE),是我经常使用的文本编辑软件,其功能的强大,令我由衷地爱上了它。每天不用就全身不爽。从最开始的9。0到现在的 12。10a(本人只用到这个版本),UE都是系统重装后必安之物。UE本身除了普通的文本...

congqiang7296的博客 399

UltraEdit正则表达式替换心得

说起来 用UltraEdit也是七八年了 用正则表达式查找也是四五年了 就是替换一直没有深入研究 原先也琢磨过几次 均是无功而返 今天客户给了一个要求 觉得可以用正则表达式做到 经过半小时摸索 终于初窥门径 了却心头一桩憾事 欣喜之余 以此为记 正文:客户文件如下:....}li "(A)|IN GENERAL.-If t(后半部分略 下同)}ls i        

hellolongbin[一个人]的专栏 1万+

ultraedit 正则表达式

<br /><br />UltraEdit(后简称UE),是我经常使用的文本编辑软件,其功能的强大,令我由衷地爱上了它。每天不用就全身不爽。从最开始的9。0到现在的 12。10a(本人只用到这个版本),UE都是系统重装后必安之物。UE本身除了普通的文本编辑功能以外,对十六进制文件的编辑能力也是十分了得,由于工 作原因它十六制下的魅力我体会不大,希望有了解的XDJM们不惜文字,共享一下。不多说,下面是UE中沿用几代的正则表达式语法。<br />首先,在UE中需要用户按键到“高级”-“配置”-“搜索”-“正则表

@塘外人 4207
上一篇: 【转】HTML中的form表单的两种enctype属性
下一篇: 【转】正则表达式--笔记与实战(Eclipse文本替换)
belber
博客等级 码龄16年 3粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值