大侠阿木博客
大侠阿木博客

UltraEdit使用技巧及其中的正则表达式

Tip 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$ 然后替换为空即可.

 

正则表达式
删除空行: 替换 %[ ^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", "teest", "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^) ^(fs^) 匹配“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。例如: 如果 ^(ho^) ^(fs^) 匹配“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使用技巧及其中的正则表达式

发表评论

textsms
account_circle
email

大侠阿木博客

UltraEdit使用技巧及其中的正则表达式
Tip 1: 如何去掉所编辑文本中包含特定字符串的行? 这则技巧是在UltraEdit的帮助文件里提到.CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后用查找 %你的字符串^p …
扫描二维码继续阅读
2015-02-24