当前位置:首页>>开发编程>>综合开发>>新闻内容
正则表达在一般文本编辑软件中的应用
作者:galilette/ROR 发布时间:2004-4-6 21:12:31 文章来源:西部E网
很多文本编辑器, 比如UltraEdit, EditPlus, EmEditor等, 都支持比较基本的正则表达 (Regular Expression). 使用正则表达能方便地查找符合一定模式的字符串, 并能进行灵活的替换. 熟练运用正则表达能极大提高某些文本操作的效率. 本贴以UltraEdit支持正则表达为例, 对基本的正则表达做出说明. 需要说明的是, UltraEdit既有自己的正则表达语法, 同时支持Unix型语法. 不失一般性, 下文介绍其Unix型语法, 在UE中, 需要到Advanced-->Configuration-->Find中, 选中Unix Style Regular Expression.

水平所限, 如有错误, 还请斧正. 欢迎转载, 转载请注明出处.

格式说明:
红色表示一个正则表达, 其中的粗体表示特殊含义字符
黑色表示说明, 蓝色表示示例部分

*特殊字符:
特殊字符是具有特殊含义的字符. 列表如下:

\
转意字符, 转换下一个字符的含义.详见 *转意字符.
^
表征行首, 即表示后继字符必须为行首字符

比如^http表示行首的http
$
表示行尾, 即表示先行字符为行尾字符

比如\.com$表示行尾的.com
*
无或者重复, 表示该位置或者无内容(null), 或者为先行字符的多次重复
+
重复, 表示该位置为先行字符的多次重复

比如te*st可以是test, teest, teeest, 但te+st不能是test
.
非新行单字符, 表示任意非新行的单个字符(一个tab, 一个空格, 一个数字, 一个字母, etc.)
| (morass提示: '|' 字符属于扩展的正则表达)
逻辑或, a|b表示该位置为a或者为b

比如Jon|ke表示Jone或Joke, Z.e|+可以表示Zoe, 也可以表示Zoo, 但不是Zooo, ...


*块(Block):

(expression)
标记块, 括号内为标记内容. 标记块既影响验证顺序, 也可以用来标记表达式中的部分内容. 在"替换"命令中, 标记过的块可以依次用
\1, \2,...来表示, (在editplus中, 整个符合正则表示的串则可以用\0来表示.) 正则表达中最多可以标记9个块.
比如:

查找(john|smith), 则john或smith都符合条件, 而如果查找john|smith, 则只有johnmith或者johsmith符合条件
查找(h.*o) (f.*s), 如果找到"hello folks", 则\2 \1可以将它替换为"folks hello"

[xyz]
单字符集, 方括号内为字符集的成员. 单字符集块表示该位置为一个该集中的字符
备注: 单字符集中的特殊字符:

-, ^, ]\外, 所有(特殊)字符在[]内都表示常意:
* 单个出现的
-表示其常意(即字符"-"), 而x-y形式则表示ascii码在ascii(x)和ascii(y)之间(inclusive)的字符.
*
^表示后继的所有字符为取非, 即比如[a-z^b]表示除b外所有小写字母
* 转意符仍旧有效, 如
[\t\n]表示该字符为tab或换行
*
\\, \], \^, \-分别表示\, ], ^, -

比如:

[0-9a-z]表示任意数字或字母,
[a-z^e-h]表示非efgh的小写字母,
[^\^\]]表示非^和]的任意字符(包括空白,换行等)
[(-*]表示(, )或* (ascii码分别为40, 41, 42)



*转意字符"\":
转意字符(Escape character)\的作用是转换(toggle)后续第一个字符的含意:
1. 常用的标识符

\d
表示一个数位字符, 等价与[0-9].
\D
表示一个非数位字符, 等价与[^0-9].
\f
表示一个form-feed字符(unix).
\n
表示一个linefeed字符(新行符).
\r
表示一个carriage return字符(复位符).
\s
表示任意一个非换行符的white space (空白字符), 包括空格, tab, form-feed等.
\S
表示一个非换行符的non-white space (非空白字符).
\t
表示一个tab.
\v
表示一个纵向tab (unix).
\w
表示任意一个显示字符, 包括下划线 (数字, 字母, 特殊符号等, 但不包括white space).
\W
表示任意一个非显示字符(non-word character).

2. 如果下一个字符在语境中本身具有特殊含意, 转意字符取消它的特殊含意
比如:

.原先代表任意字符, ][]块中表示块终止,而\.代表常意的点号, [\]]表示]

最新更新
·wml中页面自动跳转的实现方法
·Alexa排名数据接口的简要介绍
·利用U盘进行软件加密的方法(VB)
·优秀程序员的十个习惯
·项目管理:如何逃离垃圾客户
·QQ2009去广告部分核心源代码
·让程序更容易理解:13个代码注释的小技
·nx1和nx2后缀名是什么数据库文件?
·正则表达式符号解释大全
·什么是RIA?介绍几种RIA客户端开发技术
相关信息
·正则表达式符号解释大全
·揭开正则表达式的神秘面纱
·一些常用的正则表达式
·正则表达式中的特殊字符一览
·17种正则表达式
画心
愚爱
偏爱
火苗
白狐
画沙
犯错
歌曲
传奇
稻香
小酒窝
狮子座
小情歌
全是爱
棉花糖
海豚音
我相信
甩葱歌
这叫爱
shero
走天涯
琉璃月
Nobody
我爱他
套马杆
爱是你我
最后一次
少女时代
灰色头像
断桥残雪
美了美了
狼的诱惑
我很快乐
星月神话
心痛2009
爱丫爱丫
半城烟沙
旗开得胜
郎的诱惑
爱情买卖
2010等你来
我叫小沈阳
i miss you
姑娘我爱你
我们都一样
其实很寂寞
我爱雨夜花
变心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK绷
贝多芬的悲伤
哥只是个传说
丢了幸福的猪
找个人来爱我
要嫁就嫁灰太狼
如果这就是爱情
我们没有在一起
寂寞在唱什么歌
斯琴高丽的伤心
别在我离开之前离开
不是因为寂寞才想你
爱上你等于爱上了错
在心里从此永远有个你
一个人的寂寞两个人的错