首页.Net源码及技巧VisualStudio技巧Java源码及技巧PHP/Delphi数据库服务器网站设计数据安全与性能
专题推荐:Asp.net VB.net c# C/C++ ASP VB JSPJavascript PHPDelphi Sql Server Oracle Access MySql IISLinux CSS Ajax XML WebServiceDreamweaver 网页特效加密/解密 正则表达式设计模式 网络安全
您的位置:编程学习网-> 数据安全与性能-> 正则表达式-> 浏览内容

Tips: 正则表达式(POSIX 1003.2)


整理:编程学习网 加入收藏  推荐给朋友  本文已被浏览:
正则表达式,也称做“规则表达式”或“模式”,洋名是“Regular Expression”,
简称“regex"、“regexps”或“RE”。 在UNIX的许多工具程序中有着重要的地位,
因为它是在进行模式匹配时候强有力的表达语言。常见的工具程序如grep,sed,vi等;
另外在如perl等脚本语言中它的能力更是被倚重。



正则表达式是用来描述一组字符串的模式,它跟算术表达式类似——用运算符号把
更小的表达式组合起来。

一个正则表达式由几个“部分”组成,各个部分被“|”分隔;而每个部分由若干
“片”连接构成,需要先匹配第一片,接着匹配后面的各片。每片都有一个“原子”,
原子后面可有“*”、“+”、“?”或者“界限”等修饰。界限就是“{}”描述,
大括号中最多可以有两个由“,”分隔的十进制非负整数,整数的取值范围是:
0—RE_DUP_MAX(255)(含边界值)。



原子表达式有下面几种:

由()括起来的表达式                      匹配这个表达式的内容
内部为空的()                            匹配空串
[]表达式                                匹配一个字符
.                                       匹配任一字符
^                                       匹配行首的空串
$                                       匹配行尾的空串
\后面跟 ^.[$()|*+?{\ 中的任一字符       把它们当做普通字符对待
\后面跟除上面这些外的其它任一字符       匹配任一普通字符,就跟\不存在一样
无特殊意义的单个字符                    匹配它自身
{后面跟的不是数字                       当做普通字符对待,不是界限的开始


正则表达式不能由\结尾。


正则表达式有两类语法:

一)基本的:
^       放在表达式的开头,表示匹配一行的开头部分;
$       放在表达式的结尾,表示匹配一行的末尾部分;
\<      在一个字的开始进行匹配;
\>      在一个字的末尾进行匹配;
.       匹配任何单个正文字符;
[str]   匹配str中的任何单个字符;       若想匹配],就得将它放在打头的位置
                                        (前面还可以有^);
[^str]  匹配不在str中的任何单个字符;   若想匹配^,就别将它放在打头的位置;
[a-d]   匹配a到d之间的任一字符;        若想匹配-,就得将它放在开头或末尾,
                                        若想让-作为前边界,用[.和.]括起来;
*       匹配前一个字符的0次或多次出现;
\       忽略后面字符的特殊含义。

二)扩充的:

+       对前一项进行1次或多次重复匹配;
?       对前一项进行0次或1次重复匹配;
{j}     对前一项进行j次重复匹配;
{j,}    对前一项进行至少j次重复匹配;
{,k}    对前一项进行至多k次重复匹配;
{j,k}   对前一项进行j到k次重复匹配;
s|t     匹配s项或t项中的一项;
(exp)   将exp作为单项处理。


还有一些较少的用法,可以参考 man 7 regex

赞助商链接