程序员除了使用IDE编辑代码外,也经常使用一些轻量级的编辑器,如:UltraEdit,NotePad++,在这些编辑器中,我们经常用到的功能是“查找”,“替换”。这些软件都提供了丰富的查找替换功能,甚至还提供了正则表达式用来辅助查找替换。下表是UE的正则表达式语法。
正则表达式 (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] 匹配除数字外的任何字符 (~ 表示不匹配其后的内容)
使用举例:
1.查找以指定字符串开始的行
%YourString
2.删除以指定字符串结束的行
YourString$
3.删除空格行
查找: ^p$
替换为: 空
4.删除含有特定字符串的行
查找: %*YOUR STRING*^p
替换为: 空
另外,如果在查找/替换中没有选择使用正则表达式,在替换对象中下列特殊字符同样有效:
符号 |
功能 |
^^ |
匹配字符“^” |
^s |
表示活动文件窗口中选定 (加亮) 的文字。 |
^c |
表示剪贴表的内容。 |
^b |
匹配一个分页符。 |
^p |
匹配一个换行符 (CR/LF) (段落) (DOS 文件) |
^r |
匹配一个换行符 (仅 CR) (段落) (MAC 文件) |
^n |
匹配一个换行符 (仅 LF) (段落) (UNIX 文件) |
^t |
匹配一个制表符 |
时间: 2024-10-28 13:22:23