注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曹兆领的博客

有志者事竟成,破釜沉舟,百二秦关终属楚!

 
 
 

日志

 
 

正则表达中特殊字符  

2012-02-08 15:55:19|  分类: VBS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

很多文本编辑器, 比如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. 如果下一个字符在语境中本身具有特殊含意, 转意字符取消它的特殊含意。
比如:  . 原先代表任意字符, ][]块中表示块终止,而\.代表常意的点号, [\]]表示]
  评论这张
 
阅读(1736)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017