UltraEdit正则表达式使用

前端之家收集整理的这篇文章主要介绍了UltraEdit正则表达式使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1. UE里面替换tab键为空格
解决使用UE编辑好且排列整齐的文件在EditPlus中错位的问题。
对于已有的带有tab键的空格,若需要将tab键转换为空格,可使用如下方法
1)使用查找替换功能(Ctrl+R),^t 表示tab,在出现的窗口中的“查找(N)”输入:^t ,“替换为(P)”输入四个空格,全部替换即可。
2)中文是 工具栏“格式”->“转换制表符为空白”
英文是 工具栏“ format”->“tab to spaces”。
若要使新建的文件在UE中编辑时,键入tab键时为4个空格,可选择工具栏选择“高级”->“配置”,勾选“用空格代替制表符”,并将缩进的空 格由2改成4即




正则表达式 (UltraEdit Syntax):


% 匹配行首 - 表明要搜索的字符串一定在行首.
$ 匹配行尾 - 表明要搜索的字符串一定在行尾
? 匹配除换行符外的任一单个字符.
* 匹配任意个数的字符出现任意次数(不包括换行符)
+ 匹配前导字符或者表达式出现一次或者更多次(不包括换行符)
++ 匹配前导字符或者表达式不出现或者出现一次以上(不包括换行符)
^b 匹配页中断符
^p 匹配DOS文件的换行符
^r 匹配MAC文件的换行符(CR Only)
^n 匹配UNIX文件的换行符 (LF Only)
^t 匹配一个制表符
[ ] 匹配方括号中的单个的字符


删除空行: 替换 %[ ^t]++^p 为 空串
删除行尾空格: 替换 [ ^t]+$ 为 空串
删除行首空格: 替换 %[ ^t]+ 为 空串
每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1"
每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " "
(如果一行是以空格开始的,则视之为一段的开始行)
将一段合并为一行: 替换 [ ^t]++^p^([~ ^t^p]^) 为 ^1
(注意: 此处假定文本是以DOS方式回车换行 - CR/LF)
去掉HTML TAG: 替换 ^{<*>^}^{<*^p*>^} 为 空串
删除HTML中的所有: 替换 <[ ]++a *[ ]++href[ ]++=*> 为 空串
删除文本中指定的前2列字符: 替换 %?? 为 空串
在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 "^1 ^2"
查找所有的数字: [0-9]+[.]++[0-9]+
查找所有的单词: [a-z]+
查找所有的网址: http://[a-z0-9^~`_./^-^?=&]+


UE 语法高亮着色


UE安装完毕后默认着色显示的只有11种,如果想自行添加对于某种文件类型的着色方案,如sql、jsp等,可按以下步骤进行。


1、登录UltraEdit的官方网站:http://www.ultraedit.com/index.PHP?name=Content&pa=showpage&pid=40


2、在wordfiles下找到所需的文件类型,下载(txt文件


3、打开下载的txt文件,在文件内容头部会有“/L20”字样,代表这种着色方案将被设置为UltraEdit的第20种着色方案,可以修改“20”这个数字为1-20(UltraEdit只一次支持20种)的任何一个数字,注意不要和其它方案冲突


4、复制此文本文件的所有内容到UltraEdit的安装目录下WordFile.txt中的最后(如:C:Program Files\UltraEdit\WordFile.txt)。


5、重启UE即可在“视图”->“查看方式(着色文件类型)”菜单中看到新加载的配置方案。没有的话,手动在UltraEdit菜单中选择“高级” → “配置” → “语法着色”中加载刚刚编辑过的WordFile.txt,确定后再重启UE。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

p 1: 如何去掉所编辑文本中包含特定字符串的行?
这则技巧是在UltraEdit的帮助文件里提到.CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后用查找 %*你的字符串*^p 替换成空内容即可.如,我当前有个文本文件,需要去掉所有包含 http://www.dbanotes.net/ 这个字符串的行,查找 %*http://www.dbanotes.net/*^p 替换成空即可.注意,^p 是 DOS 文件类型的换行符.如果是 Unix 类型文件,则用 ^n.
Tip 2: 如何在行末添加特定字符,比如逗号?
有了上面的经验(其实我第一次是从同事那里学到的),CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式".然后可以查找 ^p(或者^n,如果是Unix 文件),用,^p(或者,^n)进行"全部替换"即可.补充一点,如果是 MAC(Apple) 类型文件,则换行符号为 ^r .
Tip 3: 如何删除空行?
参考上面两个例子,查找 ^p$ 然后替换为空即可.
看来,正则表达式需要学习一下喽.
Tip 4: 编辑文件如何加入时间戳 ?
F7 快捷键即可.你试试看?

Tip 5: 为何 拷贝(Copy)/粘贴(Paste)功能不能用了?
不怕大家笑话,我有几次使用 UltraEdit 的过程中发现拷贝与粘贴的内容是不匹配的.不知所以然,干脆重新启动了笔记本.今天翻看手册才恍然大悟:UltraEdit有10个剪切板(clipboard),分别用Ctrl+0 - Ctrl+9 切换. Ctrl+0 是 Windows 的,其他则为用户自定义的.我在使用的过程中错调用了 CTRL+n,结果内容就有问题了.你遇到过没?
Tip 6: 即使是打开小文件也有迟延?
这是我遇到过的问题.每次打开文件的时候总有几秒钟的耽搁.我的机器性能可不算差.怎么回事? 网络打印机搞得鬼! 打开"高级"->"设置"->"编辑器"->"高级",看看是不是选中了"载入/恢复打印机设置"?如果是的话,去掉(不同的版本/汉化与否可能该位置所在有差别).
Tip 7: 删除当前行内容 CTRL+e

正则表达式
删除空行: 替换 %[ ^t]++^p 为 空串


删除行尾空格: 替换 [ ^t]+$ 为 空串


删除行首空格: 替换 %[ ^t]+ 为 空串


每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1"


每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " "
(如果一行是以空格开始的,则视之为一段的开始行)


将一段合并为一行: 替换 [ ^t]++^p^([~ ^t^p]^) 为 ^1
(注意: 此处假定文本是以DOS方式回车换行 - CR/LF)


去掉HTML TAG: 替换 ^{<*>^}^{<*^p*>^} 为 空串


删除HTML中的所有: 替换 <[ ]++a *[ ]++href[ ]++=*> 为 空串


删除文本中指定的前2列字符: 替换 %?? 为 空串


在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 "^1 ^2"


查找所有的数字: [0-9]+[.]++[0-9]+


查找所有的单词: [a-z]+


查找所有的网址: http://[a-z0-9^~`_./^-^?=&]+

%1 搜索以1开头的行
1$ 搜索以1为结尾的行
? 匹配单字符
* 匹配多字符
Te+st 匹配"test","teest","teeeest" 等. 但不匹配 "tst".
te++st 匹配"test","teeeest","tst" 等. 但不匹配 .
^p 新行 (DOS Files格式)
^r 新行 (MAC Files格式)
^n 新行 (UNIX Files格式)
^t tab键
[1-9] 匹配1-9的数字
[linux] 匹配linux中任何一个单词
[~0-9] 除数字外任何一个词
"^{John^}^{Tom^}" 搜索john和tom 如john sdfasdf tom被选种,当然不包括sdfasdf,其中^{和^}是分割符





正则表达式 (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
匹配一个制表符



------

以下是网上摘录的UE 技巧
1)删除空行: 替换 %[ ^t]++^p 为 空串
2)删除行尾空格: 替换 [ ^t]+$ 为 空串
3)删除行首空格: 替换 %[ ^t]+ 为 空串
4)每行设置为固定的4个空格开头: 替换 %[ ^t]++^([~ ^t^p]^) 为 " ^1"
5)每段设置为固定的4个空格开头: 替换 %[ ^t]+ 为 " " (如果一行是以空格开始的,则视之为一段的开始行)
6)将一段合并为一行: 替换 [ ^t]++^p^([~ ^t^p]^) 为 ^1 (注意: 此处假定文本是以DOS方式回车换行 - CR/LF)
7)去掉HTML TAG: 替换 ^{<*>^}^{<*^p*>^} 为 空串
8)删除HTML中的所有<A>: 替换 <[ ]++a *[ ]++href[ ]++=*> 为 空串
9)删除文本中指定的前2列字符: 替换 %?? 为 空串
10)在第4列后插入2列空白字符: 替换 %^(????^)^(?^) 为 "^1 ^2"
11)查找所有的数字: [0-9]+[.]++[0-9]+
12)查找所有的单词: [a-z]+
13)查找所有的网址: http://[a-z0-9^~`_./^-^?=&]+

UltraEdit正则表达式(UltraEdit Syntax
%1 搜索以1开头的行
1$ 搜索以1为结尾的行
? 匹配单字符
* 匹配多字符
Te+st 匹配"test","teeeest" 等. 但不匹配 "tst".
te++st 匹配"test","tst" 等. 但不匹配 .
^p 新行 (DOS Files格式)
^r 新行 (MAC Files格式)
^n 新行 (UNIX Files格式)
^t tab键
[1-9] 匹配1-9的数字
[linux] 匹配 linux中任何一个单词
[~0-9] 除数字外任何一个词
"^{John^}^{Tom^}" 搜索john和tom 如john sdfasdf tom被选种,其中^{和^}是分割符
以下是自己做的例子:
1:替换空格或TAB后的所有字符(这个常常在取字段列名时有用到,因为用desc列出来的信息降了列名外还有列类型,列空约束和列注释信息):
命令:将[ ^t]+*$替换为空
1.1:替换前,图1.1:
1.2:用CRTL+R调出替换窗口,然后按下面的输入,替换,图1.2(注意,此处要选择正则表示式,默认情况下不勾选):
从替换结果来看,说明查找的顺序是从前到后,替换是从第一个开始查找到的字符位置开始的。
依此递推,当我们想将特定字符串后的内容替换为特定内容或者空时,,只需将%*{特定字符串}替换成空为可以了。
2、替换含有空格或TAB键前的所有内容
操作:将%*[ ^t]替换为空
2.1替换前,如图1.1
2.2替换后,图2.2:
依此递推,当我们想将特定字符串前的内容替换为特定内容或者空时,只需将{特定字符串}+*$替换成空为可以了。
3、空行或仅含有空格和TAB键的行
操作:将%[ ^t]++^p替换为空
3.1:替换前,图3.1:
4、在行末添加;分号字符
操作:将$替换成;
4.1:替换前,如图1.1。
4.2:替换后:
操作:%替换成四个空格或者用UE的列块模式
5.1:替换前,如图1.1
5.2:替换后,图5.2:
操作:将%*varchar*^p替换成空
6.1:替换前,0)"> 6.2:替换后,图6.2:
操作:将;替换成;^p
7.1:替换前,图7.1:
以上是一些常用的UE的正则式应用,在本人的工作中,常常是在生成创建或修改 数据库对象的 SQL语句时用到,它给我们平时的工作带来很大的例行性。对于LINUX、UNIX和ORACLE 10G后的版本,都有对正则表达式的支持,语法上大同小异,使用正则表达式,会给我们的日志文本处理和字符串匹配带来很大的便利性。工欲善其事,必行利其器。正则表达式,就是我们的日常工作的必备手段之一。

猜你在找的正则表达式相关文章