正则表达式1
正则表达式
7.1、在JavaScript中,正则表达式是对Perl版的改进和发展。
7.2、^表示一个字符串的开始,$表示一个字符串的结束。
7.3、(?:...)表示一个非捕获型分组(noncapturinggroup)。
7.4、(...)表示一个捕获型分组(capturinggroup)。
7.5、[...]表示一个字符类,[^?#]表示一个字符类包含除?和#之外的所有字符。
7.6、有两个方法来创建RegExp对象。优先采用正则表达式字面量。如下:
varmy_regexp=/"(?:\\.|[^\\\"])*"/g;但如果要使用RegExp构造器创建一个正则表达式,要多加小心,因为反斜杠在正则表达式和在字符串字面量中有不同的含义。通常需要双写反斜杠及对引号进行转义:
varmy_regexp=newRegExp("\"(?:\\.|[^\\\\\\\"])*\"",'g');7.7、在RegExp中,有三个标志:g、i和m。7.8、RegExp对象的属性
属性用法
global如果标志g被使用,值为true
ignoreCase如果标志i被使用,值为true
lastIndex下一次exec匹配开始的索引。初始值为0
multiline如果m被使用,值为true
source正则表达式源代码文本
7.9、一个正则表达式因子可以是一个字符、一个由圆括号包围的组、一个字符类,或者是一个转义序列。除了控制字符和特殊字符以外,所有的字符都将被按照字面处理:
\/[](){}?+*|.^$
如果上面列出的字符按字面去【匹配,那么必须要一个\前缀来进行转移。
7.10、正则表达式转义:
\f是换页符,\n是换行符,\r是回车符,\t是制表符,\u允许指定一个Unicode字符来表示一个十六进制的常量
\d等同于[0-9]
\s等同于[\f\n\r\t\u000B\u0020\u00A0\u2028\u2029]。这是Unicode空白符的一个不完全子集。\S表示与其相反的:[^\f\n\r\t\u000B\u0020\u00A0\u2028\u2029]
\w等同于[0-9A-Z_a-z]。\W则表示与其相反。
\b被指定为一个字的边界标志。
\1是指分组1所捕获到的文本的一个引用,\2指向分组2的引用,\3指向分组3的引用,以此类推。
7.11、正则表达式分组共有47.12、正则表达式字符类内部的转义规则和正则表达式因子相比稍有不同。[\b]是退格符。下面是在字符类中需要被转义的特殊字符:
-/[\]^
7.13、正则表达式因子可以用一个正则表达式量词后缀,用来决定这个因子应该被匹配的次数。包围在一对花括号中的一个数字表示这个因子应该被匹配的次数。所以,/www/和/w{3}/等价。{3,6}将【匹配3、4、5或6次。{3,}匹配3次或更多次。
7.14、?等同于{0,1}。*等同于{0,}+则等同于{1,}。
7.15、如果只有一个量词,则趋向于进行贪婪性的匹配,即匹配尽可能多的重复直至达到上限。如果这个量词还有一个额外的后缀?,那么则趋向于进行懒惰性匹配,即试图匹配尽可
能少的必要重复。总结:本章对正则略感并未深入,关于“捕获分组”即点到为止,也未触及“零宽断言”的概念(一个使用零宽断言的例子——《不包含字符串abc的正则表达式》)。《正则表达式30分钟入门教程》言简意赅地丰富并弥补了这些不足。
相关文章
- 编译原理实验三
- 实验3+由正规文法构造正规式
- JS的正则表达式
- 自己动手开发编译器(三)有穷自动机
- barcode编码规则
- 互联网金融数据抓取方法研究
- ML中的过拟合问题
- 网络爬虫的设计与实现(完整版)
- UltraEdit 使用技巧笔记
编译原理实验报告 实验名称 由正规文法构造正规式 实验时间 2014-4-30 院系 计算机科学与技术学院 班级 学号 姓名 1. 试验目的 一个文法可以定义某种语言,而一个特定的语言也可以由文法来描述.法与语言之间并不存在一一对应的关系. ...
编译原理实验报告 实验名称 由正规文法构造正规式 实验时间 2013年6月5日星期三 院系 计算机 安徽大学 Author: idiot10 1. 试验目的 输入:任意的正规文法. 输出:相应的正规式. 2. 实验原理 3型文法(正则文法, ...
的正则表达式 //校验是否全由数字组成 代码 1.functionisDigit(s) 2.{ 3.varpatrn=/^[0-9]{1,20}$/; 4.if(!patrn.exec(s))returnfalse 5.returntrue ...
上回我们说到用正则表达式来表示词法分析中的单词规则.正则表达式的规则很容易理解,但是正则表达式并不能直接用来解析字符串,我们还要引入一种适合转化为计算机程序的模型.今天我们引入的这种模型就叫做有穷自动机(finite automation, ...
WMS3.0中如何实现编码管理 R2E-WMS3.0可以帮助您管理系统中各类对象(如货物.库位等)的编码,从而实现全面的编码管理.编码管理的内容包括三个方面:制定编码规则.根据规则生成编码和校验编码. 编码规则的分类和用途 在系统中可以针对 ...
计算机工程与设计ComputerEngineeringandDesign兰秋军:互联网金融数据抓取方法研究 2011,Vol.32,No.51829 互联网金融数据抓取方法研究 兰秋军 (湖南大学工商管理学院,湖南长沙410082) 摘 要 ...
防止过拟合: 1. 机器学习中防止过拟合的方法? 答:早停.数据扩展.正则化(L1.L2(权值衰减)).dropout 早停: 在训练数据不足时,或者过训练时,常常会导致过拟合问题.其直观表达如下图: 随着训练的进行,网络在训练数据上的误差 ...
网络爬虫的设计与实现 摘 要 网络爬虫将下载的网页和收集到的网页信息存储在本地数据库中以供搜索引擎使用,它是一个专门从万维网上下载网页并分析网页的程序.随着网络的快速发展,人们对搜索引擎的要求也越来越高,而网络爬虫的效率直接影响着搜索引擎的 ...
[ 技术文章 ] UltraEdit 是每天必用的工具之一.但想想看,实际使用到的功能只是这个工具强大功能的极小的一部分.灵活使用这个工具有的时候能起到事半功倍的效果.记录并收集一些小技巧对自己对别人都有帮助.因为我在使用"列编辑 ...