1.var reg=/./与var reg=/\./的区别?

  前者代表任意一个字符,

  后者代表这个字符串中得有一个点

  2.?的使用

  如果单独的一个字符后面带?

  代表1个或0个这个字符的出现;  列如: /\d?/

  如果量词+后面带?  取消正则的贪婪性  在捕获的阶段

  3.捕获:

  1.普通捕获  正则的方法exec()  字符串的方法match()

    普通捕获有懒惰性:

    给正则添加一个修饰符g,可以解决;

    match是将所有捕获的内容放在一个数组中,并返回,match就是exec()对函数的简单封装

  2.分组捕获:还是正则的方法exec() 字符串的方法match()

    只不过正则结构发生了变化加()     (分两种捕获,全局和非全局)

  非全局  var reg=/(a)(b)/  exec()和match()在非全局下分组捕获相同的,分组捕获在捕获的过程中,即捕获大正则的内容,也捕获分组中的内容,并返回

  全局   var reg=/(a)(b)/g  exec()和match()在全局下的分组捕获是不一样的,exec()不变,但是match()只捕获到大正则的内容:

  3.分组的优势:

    1.可以提升优先级

    2.可以捕获引用

  捕获引用:

    \1  代表分组1里面的内容:

    \2  带标分组2里面的内容:

  分组必须在引用前,如果分组引用在分组前,就是普通的表达式// ???  

  案例:/((a)(b))/  第一组:先捕获大()  第二组:在捕获小()  第三组:在捕获小()  总结:分组捕获:先捕获大(),在捕获小()

  分组的结果存在正则(RegExp)的$number属性下:

  \1和RegExp.$1二者,都是分组引用;

  \1只能使用,在正则表达式里面,RegExp.$1可以外面使用,都是在捕获完成的条件下:

  4.在捕获的过程中,怎样取消捕获分组内:

    在分组的前面加上?:就ok了

    ?:和?=的区别:

      ?:  取消捕获分组的内容

      ?=  案例    var reg=/a(?=b)/  捕获字符a后面紧跟着b,只返回a

  replace细说:

    replace是字符串的一个方法,他又两个参数,用后者将前者替换掉,并返回新的字符串:

    不会改变原来的字符串;

  1.如果第一个参数是字符串,只改变一次:

  2.如果第一个参数是正则:捕获一次,改变一次:

  字符串案例:var st="hello123hello456";

       var ss=st.replace("hello","world");

       console.log(ss)  返回的结果为:world123hello456

  正则的案例:var st="hello123hello456";

        var reg=/hello/g

        var ss=st.replace(reg,"world")

        console.log(ss)  结果为: world123world456

  3.如果第二个参数是匿名函数,每次捕获1次,这个匿名函数就会执行1次:

    案例:var st="hello123hello456";

       var reg=/hello/g;

       var ss=st.replace(reg,function(){

          return "world"           (这个匿名函数有三个参数,0:"world"要替换的,1:从哪开始,2:"hello123hello456"  原字符串)

        })

       console.log(ss)    返回的结果为:world123world456

  如果以后想知道对象有几个参数就是用:console.log(arguments)

  return是什么就会返回什么,没有return就是undefined;

  

  

正则捕获的细节及replace分析的更多相关文章

  1. Grok 正则捕获

    Grok 正则捕获: \s+(?<request_time>\d+(?:\.\d+)?)\s+ 回顾下: (?:pattern) 匹 配 pattern 但不获取匹配结果,也就是说这是一个 ...

  2. grok 正则捕获(就是perl的正则捕获)

    2.3.2 grok 正则捕获: \s+ 和 [\n\t\r\f]+ 一样 1.命名分组格式为(?<grp name>),反向引用时用\k<grp name> 2.命名分组的匹 ...

  3. expect正则捕获返回结果

    expect正则捕获返回结果 expect: expect -re "([0-9]*)([a-zA-Z]*)"send_user "num is $expect_out( ...

  4. 第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析

    老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法 ...

  5. 正则--test exec search match replace

    1:test 是正则对象的方法不是字符串的方法,使用例子:正则对象也就是那个设定好的模式对象 var str = "hello world!"; var result = /^he ...

  6. 正则捕获url的?号传值

    http://www.baidu.com/Q?k=0012719021908563998510650 有时候,我们需要在静态页面捕获?号传值,这时就需要用到js的正则表达式. 例如:我们要获取上面这个 ...

  7. 使用wireshark捕获SSL/TLS包并分析

    原创博客,转载请注出处! TLS运作方式如下图:

  8. PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析

    一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果, ...

  9. PLSQL_基础系列01_正则表达REGEXP_LIKE / SUBSTR / INSTR / REPLACE(案例)

    2014-11-30 Created By BaoXinjian

随机推荐

  1. 玩转X-CTR100 l STM32F4 l W25Q64 SPI串行FLASH存储

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载FLA ...

  2. HackPwn:TCL智能洗衣机破解细节分析

    上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车.小米手环.乐小宝.长虹电视.TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被 ...

  3. netscope-支持caffe的在线可视化工具-转载

    Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,地址是here,可以用来可视化Caffe结构里prototxt格式的网络结构. Netscope使用起来也非常简单,打开这 ...

  4. explain结果字段说明

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...

  5. BZOJ3757: 苹果树【树上莫队】

    Description ​ 神犇家门口种了一棵苹果树.苹果树作为一棵树,当然是呈树状结构,每根树枝连接两个苹果,每个苹果都可以沿着一条由树枝构成的路径连到树根,而且这样的路径只存在一条.由于这棵苹果树 ...

  6. 牛客小白月赛2 E:是是非非(尼姆博弈)

    链接:https://www.nowcoder.com/acm/contest/86/E来源:牛客网 题目描述 坎为水,险阳失道,渊深不测:离为火,依附团结,光明绚丽.坎卦:水洊至,习坎:君子以常德行 ...

  7. 大家一起做训练 第一场 B Tournament

    题目来源:CodeForce #27 B 有n个人比赛,两两之间都有一场比赛,一共 n * (n - 1) / 2 场比赛.每场比赛的记录方式是 a b,表示在a和b的比赛中,a胜出,b失败. 经过研 ...

  8. Weston学习

    来源网址:http://blog.csdn.net/fyh2003/article/details/49253713 Weston启动时会读取weston.ini这个配置文件,其中可以配置桌面,动画和 ...

  9. 使用lua graphql 模块让openresty 支持graphql api

      graphql 是一个很不错的api 查询标准语言,已经有一个lua 的版本支持graphql 项目使用docker&&docker-compose 运行 环境准备 模块安装 lu ...

  10. stenciljs 学习十 服务器端渲染

      stenciljs提供了 ssr 支持,对于express 最简单的就是使用提供的中间件 express 集成 const express = require('express'); const ...