------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
——什么是正则表达式:
正则表达式(Regular Expression):用于检验和操作字符串的强大工具,可以认为是一种特殊的验证字符串
——正则表达式的类
首先引用正则表达式的命名空间:
usingSystem.Text.RegularExpressions;
Capture:用于单个表达式捕获结果
CaptureCollection:用于一个序列进行字符串捕获
Group:表示单个捕获的结果
GroupCollection:表示捕获组的集会
Match:表示匹配单个正则表达式结果
MatchCollection:表示通过迭代方式应用正则表达式到字符串中
Regex:表示不可变的正则表达式
RegexCompilationInfo:将编译正则表达式需要提供信息
(主要使用的类为Regex)
——Regex类中的静态方法:
1. Regex.IsMatch:判断是否匹配
规则:Regex.IsMatch(“字符串”,”正则表达式”);
2. Regex.Match:字符串提取
规则:Regex.Match(“字符串”,”要提取的字符串的正则表达式”);//只能提取一次
3. Regex.Matches:字符串提取(循环提取所有)
规则:Regex.Matches();可以图区所有匹配的字符串
4. Regex.Replace:字符串替换
规则:Regex.Replace(”字符串,“正则,”替换内容“);
——正则表达式的基本语法
基本匹配语法:
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字 [a-z0-9A-Z]
\s 匹配任意的空白符
\d 匹配数字 [0-9]
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
例子:
1.匹配以字母a开头,的单词:\ba\w*\b
重复匹配:
* 重复0次或更多次
+ 重复1次或更多次
? 重复0次或1次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
例子:
1. 填写一个5位到12位数字的qq号:^\d{5,12}$
2.匹配Windows后面跟1个或更多数字:Windows\d+
3.匹配13后面跟9个数字(中国的手机号):13\d{9}
反义匹配:
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
例子:
1. 匹配不包含空白符的字符串:\S+
2. 匹配用尖括号括起来的以a开头的字符串:<a[^>]+>
替换匹配:
当正则表达式里需要满足多个规则时,就需要用到“|”把不同的规则隔开,使用替换时,顺序很重要
例子:
1. 3位区号,8位本地账号或4位区号,7位本地账号:0\d{2}-\d{8}|0\d{3}-\d{7}
2. 5位数字,或者用连字号间隔的9位数字:\d{5}-\d{4}|\d{5}
(\d{5}|\d{5}-\d{4}只会匹配5位的邮编(以及9位邮编的前5位,因为匹配替换时,将会从左到右地测试每个分枝条件,如果满足了某个分枝的话,就不会去管其它的替换条件了)
转义匹配:
“\”+实际字符 匹配实际字符
\r 匹配匹配回车
\n 匹配换行
\v 匹配垂直制表符
\t 匹配水平制表符
\f 匹配换页
\nnn 匹配一个8进制ASCII
\xnn 匹配一个16进制ASCII
\unnnn 匹配4个16进制的Uniode
\c+大写字母 匹配ctrl+大写字母
例子:
1.用正则表达式匹配一个用”-“分隔开头010的8位电话号码:^010\-\d{8}$
——常用的正则表达式
电话号码:
(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?
Email地址:
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
数字:
整数:^-?\d+$
正整数:^\d+$"或者^[0-9]*[1-9][0-9]*$
负整数:^((-\d+)|(0+))$或者^-[0-9]*[1-9][0-9]*$
英文字母:
大写:^[A-Z]+$
小写:^[a-z]+$
大小写:^[A-Za-z]+$
数字加英文字母: ^[A-Za-z0-9]+$