JavaScript语言精粹笔记之正则表达式

JavaScript语言精粹笔记之正则表达式


在JS中,正则表达式被用来对字符串中的信息进行查找替换提取操作。通常来说,在JS中正则表达式相较于等效的字符串运算有着显著的性能优势。

可处理正则表达式的方法有:
    1. regexp.exec
    2. regexp.test
    3. string.match
    4. string.replace
    5. string.search
    6. string.split

这些方法的具体用法将在以后进行详细介绍。

JS中的正则表达式语法是对Perl版的改进和发展。JS正则表达式难以分段阅读,因为他们不支持注释和空白

一个匹配URL的正则表达式:



正则表达式的创建

有两种创建正则表达式的方法:

  1. 使用正则表达式常量
    正则表达式常量是被包含在一对斜杠中的特殊的字符序列。其定义如下:
  2. 另一种方法就是使用RegExp构造器

    RegExp构造器接受一个字符串,并把它编译为一个RegExp对象。用法如下:


    RegExp构造器适用于正则表达式必须在运行时动态生成的情况。第二个参数用来指定标志。


正则表达式的组成

构成正则表达式的元素有以下几类:

  1. 正则表达式选择

    它尝试按顺序依次匹配这些序列项,如果这些序列中的任何一项符合匹配条件,那么这个选择就被匹配。


  2. 正则表达式序列
  3. 正则表达式因子


  4. 正则表达式转义


  5. 正则表达式分组

    共有四种分组,如下所示:


    捕获型分组:任何匹配这个分组的字符将会被捕获,每个捕获型分组都会被保存到结果组中并被指定一个数字(第一个捕获的分组是分组1,依次编号)。

    非捕获性分组:非捕获型分组仅做匹配,而不捕获所匹配的文本,非捕获型分组不会被保存到结果组中,所以不会影响捕获型分组的编号。

    向前正向匹配:类似于非捕获型分组,但自身并不匹配任何字符,只是对相应的元素进行修饰(限制),只有这个分组匹配成功后,才开始正式的匹配。

    向后正向匹配:类似于向前正向匹配,但只有在他匹配失败的情况下才进行匹配。

  6. 正则表达式类

  7. 正则表达式类转义


    字符类内部的转义规则和正则表达式因子的稍有不同,[\b]是退格符,下面的字符在字符类中需要转义:

    - / [ \ ] ^

  8. 正则表达式量词


    如果量词后面没有问号,则进行贪婪性匹配,即匹配尽可能多的重复直到到达上限;如果量词后面有问号,则进行懒惰性匹配,即试图匹配尽可能少的重复。一般情况下最好坚持使用懒惰性匹配。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值