您的位置:首页 > 其它

正则表达式的基本概念

2013-08-14 00:01 260 查看
一.正则表达式的介绍与作用:

我们在处理数据的时候,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的语法。

正则表达式的主要作用是分割、匹配、查找、替换。

正则表达式不仅可以帮助我们完成一些通过函数无法实现的工作,还可以帮助我们减轻很多工作量。

二.正则表达式的类型:

以perl语言为基础的正则,比较规范,执行效率更高,有起始符和结束符

以Posix为基础的正则

三.正则表达式中的元素:

1.原子(普通字符:[a-zA-Z0-9] ,原子表,转义字符)

 a. a-z  A-Z  0-9  //常见的字符

 b. (abc) (xyz)  //用圆括号包含起来的单元符,把abc,xyz看成一个模块来匹配

 c. [abc]  [^abc] //用方括号包含的原子表,原子表中的^代表排除或者相反内容。与b.相反

 d. 转义字符:\d 包含所有数字[0-9]    \B   除所有数字外[^0-9]  \w 包含所有英文字符[a-zA-Z]   \W  除所有英文字符外[^a-zA-Z]   \s  包含空白区域如回车,换行,分页等[\f\n\r]

2.元字符(有特殊功能的字符:".","#","$")

*  匹配前一个内容的0次1次或多次

.  匹配内容的0次1次或多次,但不包含回车换行

+ 匹配前一个内容的1次或多次

?匹配前一个内容的0次或1次

|  选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)

^  匹配字符串首部内容

$  匹配字符串尾部内容

\b 匹配单词边界,边界可以是空格或者特殊符合

\B 匹配除带单词边界意外内容

{m} 匹配前一个内容的重复次数为M次

{m,} 匹配前一个内容的重复次数大于等于M次

{m,n} 匹配前一个内容的重复次数M次到N次

( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取
 
3.模式修正符(比如在模块外加上i,可以忽略大小写,主要用于增强模块的功能)
 

/ 正则 / U  


 

i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
S 将转义回车取消是为单行匹配如. 匹配的时候
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部无任何内容 \n
U 禁止贪婪匹配只跟踪到最近的一个匹配符并结束,
    常用在采集程序上的正则表达式

 
4.运算优先顺序

( )  圆括号因为是内存处理所以最高
* ? +  { } 重复匹配内容其次
^ $ \b 边界处理第三
|  条件处理第四
最后按照运算顺序计算匹配

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: