您好,欢迎访问三七文档
梁卓耀博客:liangzhuoyao.blog.51cto.com1正则表达式快速入门一.正则表达式测试工具.......................................................................................................1二.基本用法...........................................................................................................................21.基本的名词解释...............................................................................................................22.本节涉及到的语法表.......................................................................................................23.用法举例说明...................................................................................................................3三.中级用法...........................................................................................................................51.分组...................................................................................................................................52.反义...................................................................................................................................63.后向引用...........................................................................................................................64.零宽断言...........................................................................................................................75.负向零宽断言...................................................................................................................86.注释:...............................................................................................................................97.贪婪与懒惰.......................................................................................................................9一.正则表达式测试工具1.第一步:先确保你的电脑已经安装了“.NetFramework2.0”,如果你的电脑没有安装,可以到这个网址下载并安装。网址:=zh-cn&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f52.第二步:安装RegexTester测试工具,网址:第三步:这是个绿色软件,下载完后打开压缩包,直接运行RegexTester.exe。4.用法:1)在Regex空白处输入正则表达式;2)在Source空白处输入需要查找的内容3)当输入完正则表达式和需要查找的内容后,按F5键,就会在Mateches空白处显示你匹配你所写的正则表达式的内容;5.例子:1)正则表达式“\bc\w*\b”,这个表达式意思是匹配以字母c开头的单词——先是某个单词开始处(\b),然后是字母c,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。2)欲查找的内容:cbc,bda,bdamlkfdasfsd,cfdsafsdl,fdakldsaf3)按F5键,在Mateches空白处显示结果cbc和cfdsafsdl;4)如图1所示梁卓耀博客:liangzhuoyao.blog.51cto.com2图1二.基本用法1.基本的名词解释1)字符:是指计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。2)字符串:是指0个或更多个字符的序列。3)文本:也就是文字,字符串。4)匹配:某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。2.本节涉及到的语法表代码说明.匹配除换行符以外包括空格和Tab键的任意字符*重复前一个字符或一组表达式零次或更多次?重复前一个字符或一组表达式零次或一次+重复前一个字符或一组表达式一次或更多次;-匹配除了换行符以外的任意字符\转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;比如如果你想查找“.”,或者“*”,就需要用“\”。因此,你应该使用“\.”和“\*”。当然,要查找\本身,你也得用“\\.”|或的表达式,表示分支条件,匹配代码左侧的表达式或匹配代码右侧的表达式两者之一;注意:当左侧的表达式匹配条件相符的话,不再检测右侧的表达式梁卓耀博客:liangzhuoyao.blog.51cto.com3^匹配字符串的开始的一个位置,同时也表示否的表达式,表示不想被匹配的字符,一般和[]一起使用。也匹配输入字符串的开始$匹配字符串的结束的一个位置()匹配一组表达式,该表达式可以由其它特殊字符组成[]匹配包含在其中的单个字符\w匹配任意一个字母或数字或下划线或汉字等\W匹配任意不是字母,数字,下划线,汉字的字符\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等\S匹配任意不是空白符的字符,等价于[^\f\n\r\t\v]\d匹配任意一位数字,等价于[0~9]\D匹配任意非数字的字符,等价于[^0~9]\b匹配一个单词的开始或结束,也就是指单词和空格间的位置\B匹配不是单词开头或结束的位置\f匹配一个换页符\n匹配一个换行符\r匹配一个回车符\t匹配一个制表符\v匹配一个垂直制表符{n}重复n次,只对邻近的字符或一组表达式起作用{n,m}重复n到m次,只对邻近的字符或一组表达式起作用(exp)匹配exp,并捕获文本到自动命名的组里(?nameexp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号(?=exp)匹配exp前面的位置(?=exp)匹配exp后面的位置(?!exp)零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp。(?!exp)匹配前面不是exp的位置*?重复任意次,但尽可能少重复+?重复1次或更多次,但尽可能少重复??重复0次或1次,但尽可能少重复{n,m}?重复n到m次,但尽可能少重复{n,}?重复n次以上,但尽可能少重复3.用法举例说明1)表达式:\bhi\b所需语法:\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;梁卓耀博客:liangzhuoyao.blog.51cto.com4含义说明:精确地查找“hi”这个单词查找结果:能查找到类似“him,history,high”这样的单词2)表达式:\bhi\b.*\bLucy\b所需语法:\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;.——匹配除换行符以外包括空格和Tab键的任意字符;*——重复前一个字符或一组表达式零次或更多次;含义说明:先是一个单词hi(前后用“\b”来匹配为一个单词),然后是任意个任意字符但不能是换行(用“.”来匹配),最后是“Lucy”这个单词。查找结果:能查找到类似“hi,iamLucy”这样的字符串3)表达式:0\d{2}-\d{8}所需语法:\d——匹配一位数字;\d{n}——匹配n位数字;含义说明:这是一个查找电话号码的正则表达式,“0”代表以0开头的字符串,\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次或8次;查找结果:能查找到类似“020-88889999”这样的字符串;4)表达式:\ba\w*\b所需语法:b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;\w——匹配字母或数字或下划线或汉字等;*——匹配的是数量,也就是匹配前边的内容可以连续重复使用任意次;含义说明:匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。查找结果:能查找到类似“abc”这样的字符串;5)表达式:\d+所需语法:\d——匹配一位数字;+——重复前一个字符或一组表达式一次或更多次;含义说明:\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。查找结果:能查找到类似“989”这样的字符串;6)表达式:\b\w{6}\b所需语法::\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;\w——匹配任意一个字母或数字或下划线或汉字等;{n}——重复n次,只对邻近的字符或一组表达式起作用;含义说明:匹配刚好6个字符的单词查找结果:能查找到类似“strong”这样的字符串;7)表达式:^\d{5,12}$所需语法:^——匹配字符串的开始的一个位置;$——匹配字符串的结束的一个位置;\d——匹配一位数字;{n,m}——重复n到m次;含义说明:匹配长度在5至12位的数字串。“{5,12}”的意思是重复的次数不能少于5次,不能多于12次,否则都不匹配。这个表达式常用在验证输入的内容,比如用于一个网站要求你填写的QQ号必须是5位到12位数字时。查找结果:能查找到类似“87122234”这样的字符串;8)表达式:Windows\d+所需语法:\d——匹配任意一位数字,等价于[0~9];+——重复前一个字符或一组表达式一次或更多次;含义说明:匹配Windows后面跟1个或更多数字梁卓耀博客:liangzhuoyao.blog.51cto.com5查找结果:能查找到类似“windows2003”这样的字符串;9)表达式:unibetter\.com所需语法:\——转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;含义说明:匹配unibetter.com查找结果:能查找到“unibetter.com”这样的字符串;10)表达式:[cdefg]所需语法:[]——匹配括号里任何一个字符或字符串;含
本文标题:正则表达式快速入门
链接地址:https://www.777doc.com/doc-4710123 .html