Chinaunix首页 | 论坛 | 博客
  • 博客访问: 182078
  • 博文数量: 13
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-07 00:34
文章分类
文章存档

2018年(1)

2016年(6)

2015年(2)

2014年(4)

我的朋友

分类: 系统运维

2014-11-05 17:01:37

不通的宿主语言,正则表达式的用法和写法都有很大的不同。
在某种特定的宿主语言下使用正则表达式,主要考虑3个问题:
1.支持的元字符,以及元字符的含义。这被称为正则表达式的 流派 。
2.正则表达式与宿主语言的交互方式。
3.正则表达式引擎如何将表达式应用到文本。

在正则的世界中漫步

正则表达式的起源

正则表达式起源于20世纪40年代两位神经学家,他们研究出一种模型,认为神经系统在神经元层面上工作的方式,后来数学家在代数学中正式描述了这种被他称为 “正则集合”的模型,正则表达式才成为现实。

常用的元字符和特性

下面的内容是对第一章和第二章的总结,主要介绍各个元字符和其意义。

字符表示法

字符缩略表示法
\a   警报
\b   退格
\e   escape字符(在Perl中作为ASCII的转义符)
\f   进纸符
\n  换行符
\r   回车符
\t   制表符
\v   垂直制表符

字符组及相关结构

普通字符组:[a-z]和[^a-z]
[a-zA-Z]能匹配所有的字母

几乎能匹配任何字符的元字符:点号

字符组简记法:\w \d  \s  \W  \D  \S
\w     单词中的字符,表示所有数字和字符,等价于[a-zA-Z0-9_]
\W     跟\w相反
\d      数字 ,等价于[0-9]
\D     跟\d相反
\s      空白字符,包括换行,制表符,空格。
\S      跟\s相反

锚点及其他“零长度断言”

这种字符并不会匹配具体的文本,而是寻找文本中的位置。
行/字符串的起始位置:^  和 \A
\A    匹配待搜索文本的起始位置
行/字符串的结束位置:$和\Z(换行符之前的位置)  或\z(不考虑换行符)

单词分界符:  \b  \B  \<  \> 
\B  非单词分界符,比如数字之类的。

顺序环视 (?=)  (?!)    逆序环视(?<=)   (?

分组,捕获,条件判断和控制

括号可以进行分组和捕获,是以从左到右数开括号的个数算的,如果支持反向引用,则这些括号内的子表达式可以在后面用\1  \2来表示。
(?:....)   分组但不捕获的括号。

fighting!!





阅读(3267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~