• JS学习笔记——如何在正则表达式中控制捕获


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

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

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

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

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

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

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

  • 相关阅读:
    经典排序之 计数排序
    经典算法 总结
    经典排序之 二路归并排序
    经典排序之 堆排序
    经典排序之 插入排序
    经典排序之 冒泡排序
    经典排序之 选择排序
    经典排序之 快速排序
    两个队列实现一个栈
    Java Web系列:JDBC 基础
  • 原文地址:https://www.cnblogs.com/bingbing/p/2915387.html
Copyright © 2020-2023  润新知