正则表达式基础.ppt

上传人:牧羊曲112 文档编号:6302808 上传时间:2023-10-15 格式:PPT 页数:23 大小:4.02MB
返回 下载 相关 举报
正则表达式基础.ppt_第1页
第1页 / 共23页
正则表达式基础.ppt_第2页
第2页 / 共23页
正则表达式基础.ppt_第3页
第3页 / 共23页
正则表达式基础.ppt_第4页
第4页 / 共23页
正则表达式基础.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《正则表达式基础.ppt》由会员分享,可在线阅读,更多相关《正则表达式基础.ppt(23页珍藏版)》请在三一办公上搜索。

1、1,五.正则表达式基础,2,目标,为什么要使用正则表达式?正则表达式的语法基础。正则表达式的应用。,3,先看看以下应用,在B/S程序中,经常会出现以下应用:1.校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串.2.校验密码:只能输入6-20个字母、数字、下划线.3.校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”.4.校验合法IP地址。5.检验有效的电子邮件地址。相关的应用实在太多。,4,试试看,var pattern=/w-+(.w-+)*w-+(.w-+)+$/;var str=prompt(“请输入你的邮件地址);if(pattern.test(st

2、r)alert(合法的电子邮件地址!);elsealert(不合法的电子邮件地址!);,5,正则表达式概述,正则表达式(regular expression).描述了一种字符串匹配的模式,可以用来检查一个串是否含有某个子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。,6,RegExp语法,语法 1re=/pattern/flags 或者/expression/或者/exp

3、ression$/语法 2re=new RegExp(pattern,flags)参数re必选项。将要赋值为正则表达式模式的变量名。Pattern 必选项。要使用的正则表达式模式。如果使用语法 1,用/字符分隔模式。如果用语法 2,用引号将模式引起来。flags可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:g(全文查找出现的所有 pattern)i(忽略大小写)m(多行查找),7,RegExp主要方法,rgexp.test(str)返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。stringObj.match(rgExp)使用正则表达式

4、模式对字符串执行查找,并将包含查找的结果作为数组返回。stringObj.replace(rgExp,replaceText)返回根据正则表达式进行文字替换后的字符串的复制。,8,元字符-数量词,“+”连续出现一次或多次。例:qhit+可能为qhitt,也可能为qhitttt;“*”出现零次或连续多次。例:qhit*可能为qhit,也可能为qhitttt;“?”连续出现零次或一次。例:qhit?可能为qhit,也可能为qhitt;n N次例:qhit3,为qhitttn,m 最少N次,最多M次例:qhit2,4,t最少可以出现2次,最多可能为4次。n,最少N次,最多不限 例:qhit2,t最少

5、可以出现2次,最多无限次。,9,元字符-预定义字符类,预定义字符类s:用于匹配单个空格符,包括tab键和换行符;S:用于匹配除单个空格符之外的所有字符;d:用于匹配从0到9的数字;w:用于匹配字母,数字或下划线字符;W:用于匹配所有与w不匹配的字符;.:用于匹配除换行符之外的所有字符。注:我们可以把s和S以及w和W看作互为逆运算.,10,元字符-边界匹配器,匹配一个输入或一行的开头/a/匹配an A,而不匹配An a“$/匹配一个输入或一行的结尾,/a$/匹配An a,而不匹配an A“b匹配一个单词的边界/btom/只能是以tom开头的单词/manb/只能是以man结尾的单词B匹配一个单词的

6、非边界d匹配一个数字字符,等价于 0-9D匹配一个非数字字符,等价于 0-9n匹配一个换行符r匹配一个回车符,11,元字符-其他,:匹配一个字符,可以使用-表示范围a-z,abc,ab,0-9/A-Z/从A到Z范围内任何一个大写字母相匹配。/a-z/从a到z范围内任何一个小写字母相匹配。/0-9/从0到9范围内任何一个数字相匹配。/(a-zA-Z0-9)+/上述正则表达式将会与任何由字母和数字组成的字符串,如“aB0”等相匹配。():和|配合使用,用于匹配一个字符串注:在正则表达式中使用“()”把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中 在多个不同的模式中任选一个进行匹

7、配的话,可以使用管道符“|”。例如:/to|too|2/,则在to,too,2中任选一个值.,12,普通字符,普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 A 可以匹配所搜索字符串中任何位置出现的字母 A。这里有一些单字符正则表达式模式的示例:/a/7/M/,13,Flags 可选项 的使用,语法 1 re=/pattern/flags语法 2 re=new RegExp(pattern,flags)Flags的取值可以

8、为:g(全文查找出现的所有 pattern)i(忽略大小写)m(多行查找),14,查找,var s=The rain in Spain falls mainly in the plain;/创建表达式,包含ain的所有字符匹配.var reg=/ain/ig;var arr=s.match(reg);for(var i=0;i arr.length;i+)alert(arri);注:match 方法使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回,15,查找并定位,var s=The rain in Spain falls mainly in the plain;var re

9、g=/falls/;alert(s.search(reg);注:search 方法指明是否存在相应的匹配。如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回-1.,16,替换,var s=The rain in Spain falls mainly in the plain;var reg=/ain/ig;var arr=s.replace(reg,CHINA);alert(arr);,17,常见验证正则模式,18,示例日期格式的验证,str=1988-10-02;if(str.match(/(19|20)d2)-(0?1-9|

10、10-2)-(0?1-9|1-20-9|30|31)$/)=null)alert(一个非法的日期值!);str=1988-10-32;reg=new RegExp(/(19|20)d2)-(0?1-9|10-2)-(0?1-9|1-20-9|30|31)$/);if(reg.test(str)=false)alert(一个非法的日期值!);,1,2,19,示例身份证格式验证,str reg=new RegExp(/d15(d2A-Za-z0-9)?$/);if(reg.test(str)=false)alert(身份证格式无效!);,20,示例移动手机号的校验,str re=/(130-9)|

11、(1589)d8$/;if(str.match(re)=null)alert(请输入正确的移动手机号码!);document.write(你太有才了!);,21,JDK中对正则表达式的支持,在JDK中,有对正则表达式的支持包:包:Pattern 类正则表达式的编译表示形式。字符串的正则表达式必须首先被编译为此类的实例.方法1:compile(正则表达式字符串);方法2:matcher(给定字符串);并返回Matcher对象.Matcher 类通过解释 Pattern 对 字符序列 执行匹配操作的引擎。方法:matches();尝试将整个区域与模式匹配,如果成功,返回true,反之为false;,22,示例,String string=(w)5,20$;Pattern pattern=Ppile(string);String str=new String(afasfaf);Matcher matcher=pattern.matcher(str);System.out.println(matcher.matches();,23,总结,正则表达式的语法.正则表达式的应用.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号