世纪高等学校计算机规划教材第4章javascript正则表达式

上传人:san****019 文档编号:83380224 上传时间:2019-02-27 格式:PPT 页数:31 大小:775.50KB
返回 下载 相关 举报
世纪高等学校计算机规划教材第4章javascript正则表达式_第1页
第1页 / 共31页
世纪高等学校计算机规划教材第4章javascript正则表达式_第2页
第2页 / 共31页
世纪高等学校计算机规划教材第4章javascript正则表达式_第3页
第3页 / 共31页
世纪高等学校计算机规划教材第4章javascript正则表达式_第4页
第4页 / 共31页
世纪高等学校计算机规划教材第4章javascript正则表达式_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《世纪高等学校计算机规划教材第4章javascript正则表达式》由会员分享,可在线阅读,更多相关《世纪高等学校计算机规划教材第4章javascript正则表达式(31页珍藏版)》请在金锄头文库上搜索。

1、第4章 正则表达式,在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。 正则表达式就是用于描述这些规则的工具,本章将介绍正则表达式的定义,如何编写正则表达式,以及如何在JavaScript中使用正则表达式。,4.1 正则表达式的起源,正则表达式是一个描述一组字符串的模板,换句话说,正则表达式是记录文本规则的代码。 借助于正则表达式,很多原本非常复杂的字符串处理问题可以很容易地得到解决。 JavaScript语言的正则表达式就使用了Perl兼容的风格。,4.2 构建正则表达式,一个最简单的正则表达式就是普通的字符串,例如“hello”,它可以匹配在文本的任何位置上出现的

2、“hello”。 这个最简单的正则表达式中只包含了普通字符,与普通字符相对的一些特殊字符,如“ ( $ | ) ? * +”等,我们称之为元字符。,4.3 JavaScript中的正则表达式,应用正则表达式进行字符串处理的目的可以归结为三类: (1)验证 (2)匹配 (3)替换,4.3.1 定义正则表达式,在JavaScript中有两种定义正则表达式的方法。 第一种是使用Perl风格的表示方法,在文本的两端添加“/”符号。 例如上节中匹配文本文件名的正则表达式,在JavaScript中可以这样定义: var re = /.*.js/;,第二种方法是新建一个RegExp对象,例如: var re

3、 = new RegExp(“.*.js“); 在声明正则表达式时还可以附加标志,其中可能的标记包括: (1)g:全局查找模式; (2)i:不区分大小; (3)m:多行查找模式。,4.3.2 String对象,String对象中有以下4个方法可以支持正则表达式: (1)match:使用正则表达式进行字符串匹配; (2)replace:使用正则表达式进行字符串替换; (3)search:在字符串中查找指定的模式; (4)split:将字符串按一定的模式进行分隔。 关于这些函数的详细使用方法,请参考本书第5章的相关内容。,4.3.3 RegExp和正则表达式对象,表4-1 RegExp全局对象属性

4、,正则表达式对象指的是RegExp类的对象实例,RegExp有两个原型方法: (1)test:测试字符串是否包含指定的模式; (2)exec:在字符串中查找指定的模式,并且以数组形式返回查找结果。,【例4-1】 test方法使用示例 【例4-2】 exec方法使用示例,图4-1 exec方法输出结果,4.4 简 单 模 式,4.4.1 元字符,表4-2 正则表达式元字符,元字符是正则表达式中的特殊字符,如果需要表示元字符本身,那么必须在字符之前加上“”字符进行转义。 例如前面示例中使用的正则表达式“.*.js”就使用了“.”来表示字符“.”本身。,除了使用“”进行转义之外,也可以使用ASCII

5、代码或者Unicode代码指定字符。 使用ASCII代码表示字符时,必须指定一个两位的十六进制代码,并在前面加上“x”。 例如,字符“d”的ASCII码为100,即十六进制的64,因此在正则表达式中可以使用“x64”来表示字符“d”。,另外,也可以使用八进制来指定字符的ASCII代码,方法是直接在“”之后跟上八进制数值。 例如字符“d”的ASCII码为100,即八进制的144,因此可以使用“144”在正则表达式中表示字符“d”。,如果使用Unicode代码来表示字符,必须指定字符的4位十六进制形式,并在前面加上“u”表示Unicode。 例如字符“d”用Unicode表示法应该写作“u0062

6、”。 这种表示方法在进行非英语语言(如中文)字符串匹配时非常有用。,4.4.3 括号表达式,在中括号()之间放入一个或者多个单字符,可以创建一个待匹配的列表,这样的表达式就是括号表达式。 括号表达式能表示的范围不仅仅是数字,其他普通字符、特殊字符都可以在括号表达式中使用。 在括号表达式中可以使用多个范围。,4.4.4 预定义类,表4-3 预定义类,4.4.5 限定符,限定符可以指定某个特定模式出现的次数,基本的限定符有3种形式:n、n,m和n,。 对于几种常用的限定符,也可以使用前面提到的元字符来表示,它们是: (1)*:等价于0,; (2)?:等价于0,1; (3)+:等价于1,。,4.4.

7、6 贪婪模式与非贪婪模式,在正则表达式中定义了三种限定符模式:贪婪模式、非贪婪模式和支配模式。 其中支配模式在主流浏览器中还不支持,这里仅讨论前两种。,4.5 复 杂 模 式,4.5.1 选择和分组 可以在正则表达式中使用“|”符号表示选择的关系。 在正则表达式中圆括号()内部是一个分组,在进行匹配时,JavaScript会将匹配结果保存在RegExp对象的$1-99属性内。 【例4-3】 正则表达式的选择和分组,4.5.2 非捕获性分组,我们可以RegExp对象的$1,$2等属性来获取正则表达式分组的结果,这在正则表达式的应用中称为反向引用。 创建反向引用的分组,我们称之为捕获性分组。 与之

8、相反的概念则是非捕获性分组。,4.5.3 前瞻,除了表示非捕获性分组的“?:”字符之外,还有两个与分组相关的元字符:“?=”和“?!”,分别称为前瞻和负向前瞻。,【例4-4】 电话号码匹配(非前瞻方式) 【例4-5】 电话号码匹配(前瞻方式),4.5.4 定位符,前面编写的所有正则表达式都是与具体的字符进行匹配,在这一节将要讨论的定位符则是和字符的边界进行匹配。 正则表达式中将会考虑的边界包括两种类型: (1)字符串的开始或者结尾位置,分别用“”和“$”符号表示; (2)单词边界,即单词和空格之间的位置,用“b”表示。与单词边界相对的概念是非单词边界,它用“B”符号表示。,【例4-6】 定位符

9、使用示例 【例4-7】 寻找字符串中的第n个单词 【例4-8】 寻找字符串中的倒数第n个单词 【例4-9】 “b”定位符的使用示例 【例4-10】 寻找字符串中的第n个单词和倒数第n个单词(使用“b”定位符),小 结,本章介绍了正则表达式的起源、如何创建正则表达式以及如何在JavaScript中使用正则表达式。 利用正则表达式可以实现非常强大的字符串处理功能,同时正则表达式的使用也非常灵活。,使用正则表达式时需要注意的问题是:如果你使用正则表达式比较复杂,那么在编写代码的同时最好提供足够的注释,说明匹配字符串的特征。 另外可以使用正则表达式的测试工具(如The Regulator)来辅助编写正则表达式,这会大大提高编程效率和准确率。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号