首页 > 其他 > 详细

Regex介绍

时间:2014-03-01 09:40:22      阅读:311      评论:0      收藏:0      [点我收藏+]
定义
在一个文件或字符里查找和替代文本的一种标准,就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。
用途:
验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。
用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
用来替换,比普通的替换更强大。

bubuko.com,布布扣

PCREPerl Compatible Regular Expression. PERL兼容正则可以使用任何不是字母、数字或反斜线(\)的字符作为定界符,如果作为定界符的字符必须被用在表达式本身中,则需要用反斜线转义。也可以使用(){}[] <> 作为定界符修正符: PERL兼容正则中可能使用的修正符(修正符中的空格和换行被忽略,其它字符会导致错误)
POSIX的全称是Portable Operating System Interface for uniX,它由一系列规范构成,定义了UNIX操作系统应当支持的功能。
PCREPOSIX正则表达式的不同
1)POSIX UNIX 遵循的标准, UNIX 的命令如 grepsed能用的正则是 POSIXPERL 正则在POSIX上做了扩展,实现了很多方便的功能。
2)PCRE函数需要模式以分隔符闭合. POSIX兼容正则没有定界符,函数的相应参数会被认为是正则。 POSIX兼容正则没有修正符。
3)匹配数字的例子,Perl\dPOSIX [0-9](POSIX 新版本已支持\d )、\w\s
4)不像POSIX,PCRE扩展没有专门用于大小写不敏感匹配的函数. 取而代之的是, 支持使用/i模式修饰符完成同样的工作. 其他模式修饰符同样可用于改变匹配策略.
5)POSIX函数从最左面开始寻找最长的匹配, 但是PCRE在第一个合法匹配后停止. 如果字符串 不匹配这没有什么区别, 但是如果匹配, 两者在结果和速度上都会有差别.

BRE: Linux/Unix常用工具中,grepvised都属于BRE这一派,它的语法看起来比较奇怪,元字符『(』『)』『{』『}』必须转义之后才具有特殊含义,所以正则表达式『(a)b』只能匹配字符串 (a)b而不是字符串ab;正则表达式『a{1,2}』只能匹配字符串a{1,2},正则表达式『a\{1,2\}』才能匹配字符串a或者aaBRE不支持『+』『?』量词,也不支持多选结构『(…|…)』和反向引用『\1』『\2』…
GNUBREGNUBRE做了扩展,支持『+』『?』『|』,只是使用时必须写成『\+』『\?』『\|』,而且也支持『\1』『\2』之类反向引用
ERE:并不要求兼容BRE的语法,而是自成一体。因此其中的元字符不用转义(在元字符之前添加反斜线会取消其特殊含义),所以『(ab|cd)』就可以匹 配字符串ab或者cd,量词『+』『?』『{n,m}』可以直接使用。ERE并没有明确规定支持反向引用,但是不少工具都支持『\1』『\2』之类 的反向引用。
bubuko.com,布布扣

bubuko.com,布布扣


Regex介绍,布布扣,bubuko.com

Regex介绍

原文:http://blog.csdn.net/quincyfang/article/details/20149113

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!