.NET 正则表达式 Regex

版权所有:基础软件。作者邮箱:s.j.l.studio@hotmail.com,sun.j.l.studio@gmail.com。
本文首发于http://www.cnblogs.com/FoundationSoft。文章转载请保持此版权信息并注明出处。

正则表达式被广泛用于各种字符串处理应用,如查找、替换、格式验证等。正则表达式定义了一个字符串模式,例如,规定了字符串中应该包含哪些字符,不能包含哪些字符,以什么字符开头和结尾,某些字符出现多少次等。正则表达式本身也是一个字符串,用一种特定语法描述模式,正则表达式区分大小写。组成正则表达式的元素大致有以下几种。

(1)普通字符

普通字符表示字符本身。例如,模式“abc”表示包含abc的任意字符串。

(2)转义字符

转义字符表示转移字符本身,转义字符可以看成是普通字符的一种特殊形式。例如,模式“a\tb”匹配任意一个字符a后面紧跟一个水平制表符再紧跟一个字符b。

(3)元字符

元字符可以匹配一类字符字符,例如匹配数字、字符、空白等。常用的元字符及其含义如下。

l  […]:匹配出现于[]中的任意单个字符。

l  [^…]:匹配不在[]出现的任意单个字符。

l  .:匹配除换行符以外的任意单个字符。

l  \w:匹配任意单个字母、数字、下划线、汉字。

l  \W:匹配任意单个不属于\w模式的字符。

l  \s:匹配任意单个空白字符。

l  \S:匹配任意单个非空白字符。

l  \d:匹配单个数字字符,相当于[0-9]。

l  \D:匹配任意单个非数字字符,相当于[^0-9]。

注意:如果要在字符串中匹配小数点.,则需要在模式中写成\.的形式,即在.的前面添加\将其转义成普通字符。如果直接使用.进行匹配,那么可以匹配除换行符以外的任意单个字符。

(4)开头和结尾

在定义正则表达式的模式时,有两个特殊字符^和$,其中^表示匹配字符串开头,$表示匹配字符串结尾。例如,模式^[A-Z]匹配以大写英文字符开头的字符串,模式\.$匹配以英文句号(小数点)结尾的字符串。

注意:在正则表达式中,^字符有两种完全不同的含义。当^出现于方括号[]内时,表示“非”,匹配不出现在方括号[]中的任意字符。当^出现在方括号[]外时,表示字符串开头。

(5)重复

在正则表达式中还可以指定元素出现的次数,有以下几种方式。

l  {m,n}:匹配m到n次重复(闭区间)。例如a{1,3}匹配1到3个字符a。

l  {m,}:匹配大于等于m次重复。例如a{2,}匹配2个以下字符a。

l  {m}:匹配正好m次重复。

l  ?:匹配0到1次重复,相当于{0,1}。这种重复也称为可选,即可以出现也可不出现。

l  +:匹配1次以上重复,相当于{1,}。

l  *:匹配0次以上重复,相当于{0,}。

(6)选择

正则表达式使用符号|表示“或”的关系。例如a|A表示小写字母或者大写字母a。

(7)分组

正则表达式使用圆括号()将多个字符分成一组成为逻辑上的一个单位。例如,模式(+0)?123表示括号里面的+0是可选的,而+0?123则指0是可选的。

posted @ 2010-05-17 18:58  基础软件  阅读(3096)  评论(0编辑  收藏  举报