资源描述:
《正则表达式课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、正则表达式基础No.1正则表达式简介(RegularExpression)1、正则表达式是具有特殊语法的字符串,用来表示指定字符或者字符串在另一个字符串中出现的情况。2、这些模式字符串,有的十分简单,有的十分复杂,它们可以实现很多功能,从删除字符串中的空格到验证信用卡号的有效性等等3、正则表达式是一个描述字符模式的对象4、正则表达式基于RegExp对象实现RegExp对象语法:newRegExp(pattern,attributes)1、pattern:是一个字符串,指定了正则表达式的模式2、att
2、ributes:修饰符,用以说明高级匹配模式的规则(可选参数,并且可以组合使用)3、g执行一个全局匹配,简而言之,即找到所有的匹配,而不是在找到第一个之后就停止4、i执行不区分大小写的匹配demo1:varstr='welcome';varre=newRegExp('a','i');//只会匹配字符串中出现的第一个字母a(不区分大小写)alert(re.test(str));RegExp对象demo2:varre=newRegExp();//RegExp是一个对象,和Array一样re=newReg
3、Exp("a");//只会匹配字符串中出现的第一个小写字母are=newRegExp("a","g");//匹配字符串中出现的所有小写字母are=newRegExp("a","i");//只会匹配字符串中出现的第一个大写A或者小写are=newRegExp("a","ig");//只匹配字符串中出现的所有大写A或者小写a字面量写法语法:/text/pattern参数:参考创建RegExp对象里面的参数demo:varre;re=/a/;//只会匹配字符串中出现的第一个小写字母are=/a/g;//匹
4、配字符串中出现的所有小写字母are=/a/i;//只会匹配字符串中出现的第一个大写A或者小写are=/a/ig;//只匹配字符串中出现的所有大写A或者小写a语法与释义:正则表达式:由元字符、字符类和量词组成基础语法“^([]{})([]{})([]{})$”正则字符串=“开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束”demo:patt=/^a*[123]{2,6}2$/;元字符1、正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。(demo:pa
5、tt=/^a*[123]{2,6}2$/;)2、元字符使正则表达式具有处理能力。3、所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。4、任何时候要在正则表达式中匹配元字符,都必须对它们进行转义。因此我们要匹配一个问号,正则表达式应该这样表示元字符//method1:varreQMark=/?/;//method2:因为这种情况下Javascript解析器会按照解析特殊字符串(比如:)的方式翻译?。为了不会出现这
6、个问题,我们用两个反斜杠(双重转义)varreQMark=newRegExp("\?");常用元字符(w不包括汉字W包含汉字)varstr="ck?dfckj.abk-dj";pa=/(bw+b)/g;console.log(str.match(pa));实例字符串;tel:086-0666-88810009999原始正则:"^tel:[0-9]{1,3}-[0][0-9]{2,3}-[0-9]{8,11}$"速记理解:开始"tel:普通文本"[0-9数字]{1至3位}"-普通文本"[0
7、数字][0-9数字]{2至3位}"-普通文本"[0-9数字]{8至11位}结束"等价简写后正则写法:"^tel:d{1,3}-[0]d{2,3}-d{8,11}$",进阶No.2贪婪的、惰性的量词贪婪先看整个字符串是不是一个匹配,如果没匹配去掉最后一个字符,再次尝试,直到发现一个匹配或者字符串不剩任何字符惰性量词(?)的话,先看字符串第一个字母是不是匹配,如果不匹配,再读入下一个字符,组成两个字符组成的字符串,然后再看这个字符串匹配不,直到发现一个匹配或者整个字符串都检查过也没有匹配注意:贪婪
8、的、惰性的量词跟在普通量词后面'123456789'.match(/d{3,5}/g);//["12345","6789"]'123456789'.match(/d{3,5}?/g);//["123","456","789"]//看了上面介绍的量词,也许爱思考的同学会想到关于匹配原则的一些问题,比如{3,5}这个量词,要是在句子中出现了十次,那么他是每次匹配三个还是五个,反正3、4、5都满足3~5的条件,量词在默认下是尽可能多的匹配的,也就是大家常说的贪婪模式//