.NET 正则表达式 Regex
2010-05-17 18:58
183 查看
版权所有:基础软件。作者邮箱: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是可选的。
本文首发于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是可选的。
相关文章推荐
- .NET中的正则表达式 (三)RegexCompilationInfo 类
- .NET中的正则表达式(二)Regex 类
- .NET中的正则表达式 (一)Regex 类
- .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)
- .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)
- .NET中的正则表达式 (二)RegexOptions 枚举
- 用正则表达式看.NET编程--.NET核心正则类详解
- 用正则表达式看.NET编程--正则核心对象详解(二)
- OC - 正则表达式 - RegexKitLite
- 常见正则表达式运算 Regex 替换字符
- 正则表达式测试程序(Boost Regex Tester)0.1(老版保留)
- RegEx 正则表达式一记
- .net2.0中的正则表达式的RegexOptions.Compiled选项
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile、Study
- C++ - 正则表达式(regex) 迭代器(iterator) 的 详解 及 代码
- C++ - 正则表达式(regex) 替换(replace) 的 详解 及 代码
- C# Regex 深入正则表达式
- 黑马程序员——正则表达式 Regex
- 正则表达式(Regex)
- .net利用正则表达式提取字符串中的数字