zoukankan      html  css  js  c++  java
  • JS学习笔记——如何在正则表达式中控制捕获

      本篇学习笔记内容源于《Secrets of the JavaScript Ninja》  

      在正则表达式中,圆括号()有这双重功能,第一:为一些操作归类分组(与程序表达式中的用法差不多),第二:用于捕获信息。在一般的应用中,这两种功能并不冲突,但当正则表达式中的圆括号有些多时,就会造成不必要的捕获操作,从而影响真正需要捕获的信息操作。

      例如:var temp = /((xirang-)+)blog/;

      上面的正则表达式主要描述为:在blog前,允许出现一次或者多次“xirang-“。当然,为了捕获blog前面的所有信息,我们在(xirang)+的外部又加了一对圆括号用于实现捕获操作。此时我们可以看到,内部的圆括号用于将xirang-归类分组,以便其能够以整体的形式运用+操作符,但恰恰是这对圆括号影响了我们本身想要的单个捕获的操作逻辑(只想要一次捕获,即blog前的信息)。

      如何取消内部圆括号的捕获功能,使其只具有聚类分组功能呢,请见下面的操作(在圆括号一开始运用?:操作符)

      var temp = /((?:xirang-)+)blog/;

      上面的表达式,只将外面的圆括号用于捕获操作,内部的圆括号只具有聚类分组功能,这与我们第一开始的想法一致了。

  • 相关阅读:
    babel
    >/dev/null
    write to file
    fortran 77 example
    mix c with fortran
    automake
    Rockie's Android Porting Guide(4)——Add SD card to your system
    android平台初步分析
    Rockie's Android Porting Guide(4)——Add SD card to your system
    Android(1.5) 开机图片/文字/动画 修改
  • 原文地址:https://www.cnblogs.com/bingbing/p/2915387.html
Copyright © 2011-2022 走看看