正则表达式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分钟入门教程》言简意赅地丰富并弥补了这些不足。

正则表达式

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分钟入门教程》言简意赅地丰富并弥补了这些不足。


相关文章

  • 编译原理实验三
  • 编译原理实验报告 实验名称 由正规文法构造正规式 实验时间 2014-4-30 院系 计算机科学与技术学院 班级 学号 姓名 1. 试验目的 一个文法可以定义某种语言,而一个特定的语言也可以由文法来描述.法与语言之间并不存在一一对应的关系. ...查看


  • 实验3+由正规文法构造正规式
  • 编译原理实验报告 实验名称 由正规文法构造正规式 实验时间 2013年6月5日星期三 院系 计算机 安徽大学 Author: idiot10 1. 试验目的 输入:任意的正规文法. 输出:相应的正规式. 2. 实验原理 3型文法(正则文法, ...查看


  • JS的正则表达式
  • 的正则表达式 //校验是否全由数字组成 代码 1.functionisDigit(s) 2.{ 3.varpatrn=/^[0-9]{1,20}$/; 4.if(!patrn.exec(s))returnfalse 5.returntrue ...查看


  • 使用正则表达式找出不包含特定字符串的条目
  • 做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式.例如枚举出日志文件中不包含某个特定字符串的条目,找出不以某个特定字符串打头的条目,等等. 使用否定式前瞻 正则表达 ...查看


  • 自己动手开发编译器(三)有穷自动机
  • 上回我们说到用正则表达式来表示词法分析中的单词规则.正则表达式的规则很容易理解,但是正则表达式并不能直接用来解析字符串,我们还要引入一种适合转化为计算机程序的模型.今天我们引入的这种模型就叫做有穷自动机(finite automation, ...查看


  • 正则表达式
  • 3 正则表达式 3.1.正则表达式基础 Linux Shell以一串字符作为表达式向系统传达意思.元字符(Metacharacters)是用来阐释字符表达式意义的字符,简言之,元字符就是描述字符的字符,它用于对字符表达式的内容.转换及各种操 ...查看


  • barcode编码规则
  • WMS3.0中如何实现编码管理 R2E-WMS3.0可以帮助您管理系统中各类对象(如货物.库位等)的编码,从而实现全面的编码管理.编码管理的内容包括三个方面:制定编码规则.根据规则生成编码和校验编码. 编码规则的分类和用途 在系统中可以针对 ...查看


  • 非确定性和Kleene定理
  • 4 非确定性和Kleene 定理 4.1 非确定型有限自动机 为了证明正则语言等价于能够被FA 识别的语言,我们先对FA 作一些方便性的扩充.仍然具有有限的状态数,且识别语言的能力保持不变.一些限制放宽了,更容易构造和解释. 例子4.1图4 ...查看


  • 互联网金融数据抓取方法研究
  • 计算机工程与设计ComputerEngineeringandDesign兰秋军:互联网金融数据抓取方法研究 2011,Vol.32,No.51829 互联网金融数据抓取方法研究 兰秋军 (湖南大学工商管理学院,湖南长沙410082) 摘 要 ...查看


热门内容