原创 UltraEdit中的正则替换

2008-12-12 10:11 6066 0 分类: 工程师职场
UltraEdit在使用正则表达式进行查找替换时有两个可使用的语法集合。一个是 UltraEdit 的更早的版本被使用的原来的 UltraEdit 句法。另一个是“Unix”类型的正则表达式,这个集合在UltraEdit的默认配置中是没有启用的,需要在配置中找到search项,启用Unix类型的正则表达式。

语法集合一:

符号  功能
%     匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。
$     匹配行尾 - 显示搜索字符串必须在行尾,但是在所选择的结果字符串中不包括任何行终止字符。
?     除了换行符以外匹配任何单个的字符
*     除了换行符匹配任何数量的字符和数字
+     前一字符匹配一个或多个,但至少要出现一个
++    前一字符匹配零个或多个,但至少要出现一个
^b    匹配一个分页
^p    匹配一个换行符(CR/LF)(段)(DOS文件)
^r    匹配一个换行符(CR 仅仅)(段)(MAC 文件)
^n    匹配一个换行符 ( LF 仅仅 )( 段 )( UNIX 文件 )
^t    匹配一个标签字符TAB
[]    匹配任何单个的字符,或在方括号中的范围
^{A^}^{ B^} 匹配表达式A或 B
^     重载其后的正规表达式字符
^(^)  括或标注为用于替换命令的表达式。

语法集合二“Unix”句法类型的正则表达式

符号        功能
\          标记下一个字符作为一个特殊的字符。
"n"         匹配字符"n"。"n" 一个换行符或换行符字符。
^           匹配/定位行的开始。
$           匹配/定位行的尾。
*           匹配前面的字符零次或多次。例
+           匹配前面的字符一次或多次。例
.           匹配除了一个换行符字符匹配任何单个的字符。

(expression)标注用于替换命令的表达式。一个正则表达式根据需要,最多可以有9个标注表达式。相应的代替表达式是 x , x的范围是 1-9 。
例如:
If (h.*o) (f.*s) matches "hello folks",
2 1 would replace it with "folks hello".
(hello folks 将被替换成 folks hello。)

[xyz]       一个字符集。匹配在方括号之间的任何字符。
[^xyz]      一个否定的字符集。不匹配在方括号之间的任何字符。
\d          匹配一个数字字符。等价于[0-9]。
\D          匹配一个非数字字符。等价于[^0-9]。
\f          匹配一个换页字符。
\n          匹配一个换行字符。
\r          匹配一个回车符字符。
\s          匹配任何空白的空格, 标签, 换页, 包括空格等等,但不匹配换行符。
\S          匹配任何非空白的字符,但不匹配换行符。
\t          匹配一个标签TAB字符。
\v          匹配一个垂直的标签字符。
\w          匹配任何词语字符包括下划线。
\W          匹配任何非词语字符字符。

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
manjiaxi_801894425 2014-08-27 22:38
重返EDN
突然发现好久没有来EDN了,决定重返,积累经验点滴,促进共同进步。...
manjiaxi_801894425 2010-12-06 13:45
LPC1768 CPU 时钟配置
调试LPC1768, NXP的库好像不如Luminary的好用(大家都这么说,也就跟着人云亦云了)。对照LPC1768的手册看了看Keil例程的PLL0配置过程,记录如下:            #i...
manjiaxi_801894425 2010-02-28 19:54
[VB]如何在VB中实现对WORD和EXCEL的控制
关于VB中控制WORD和EXCEL的方法 本文将告诉你如何使用VB代码连接Office应用程序,并简要接触一下在文件中输入数据的方法。实际上,在VB中用代码与Word和Excel进行会话并控制它们,是...
manjiaxi_801894425 2009-03-20 16:20
[VB]主要的文件类型说明
扩展名    描述 .bas 基本模块 .cls 类模块 .ctl 用户控件文件 .ctx 用户控件的二进制文件 .dca 活动的设计器的高速缓存 .ddf 打包和展开向导 CAB 信息文件 .dep...
manjiaxi_801894425 2009-03-17 10:34
[Altium Designer]---如何在SCH图纸上添加title等信息
在Altium Design中,在SCH图纸上添加title、revision、drawnby等信息步骤如下:步骤一:design->document opinion->parametar...
manjiaxi_801894425 2009-03-17 10:34
[VB]如何对MsFlexGrid控件网格内容直接编辑
MsFlexGrid控件没有提供文本直接编辑的功能,一般使用一个TextBox来间接实现对MsFlexGrid当前网格直接编辑的功能:在按下一个键(非回车)后,就把TextBox移动到当前的位置并激活...
广告
我要评论
0
0
广告