黑马程序员——06 正则表达式

------- 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}        重复nm

例子:

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              匹配416进制的Uniode

\c+大写字母           匹配ctrl+大写字母

例子:

1.用正则表达式匹配一个用”-“分隔开头0108位电话号码^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]+$

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值