1.正则的懒惰性???

每次在它的方法exec中捕获的时候,只捕获第一次匹配的内容,而不往下捕获,我们把这种情况称为正则的懒惰性

且每一次捕获的位置都是从索引0开始

正则的实例对象上有一个lastindex的属性,是正则开始捕获的起始位置

var reg=/\d+/;

var st="abc123efg456";

console.log(reg.exec(st))输出123

如何解决正则的懒惰性呢

用一个修饰词“g”就可以了

2.正则的贪婪性???

每次匹配到的结果都是最长的,把这种情况称为贪婪性。

var reg=/\d+/;

var st="abc12345"

console.log(reg.exec(st))  结果是12345

如何让解决他的贪婪性呢

在元字符量词后加?

var reg=/\d+?/g

3.分组捕获  /(   )/;

分组捕获的作用(1)改变优先级(2)分组引用

\1   \2分别为跟第一组和第二组出现同样的内容

var reg=/(\w)\1(\w)\2/;

var st="sstt"

console.log(reg.test(st))==true

分组捕获的前提是正则存在分组,而且是不仅会捕获到大正则,也会捕获到小正则的内容

var reg=/(a)(b)/

var st="abcd"

console.log(reg.exec(st))  结果输出是  ab  a  b

那么该如何解决这种情况呢

在不想让它出现的那个前面加?:

var reg=/(a)(?:b)/

var st="abcd"

console.log(reg.exec(st))    结果输出的是   ab  a

正则RegExp的懒惰性和贪婪性; 分组捕获;的更多相关文章

  1. 正则冷知识;分组捕获、replace()的用法...

    1.var reg=/./; var reg=/\./的区别?? 前者代表任意一个字符,后者代表这个字符串中得有一个.. 2.?的使用?? 如果单独的一个字符串后面带? , var reg=/\d?/ ...

  2. 正则-RegExp

    正则-RegExp 正则,是一条规则,用于检验字符串格式,目标就是字符串: 只要是表单提交的数据都是字符串 定义: 1,var reg=/格式/ 2,var reg=new regexp() 方法: ...

  3. 正则RegExp序2

    1.var reg=/./     var reg=/\./ 前者代表任意一个字符而后面代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? var reg=/\d?/ /n?/ 代表 ...

  4. js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用

    js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型  Number var a1 = 10; var a2 = 3.66; conso ...

  5. Vue 变异方法filter和正则RegExp对评论进行搜索

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 正则-RegExp()构造函数

    上次写了js正则的字面量声明,今天说说RegExp()构造函数声明: var p=/cat/g;   //字面量声明var p=new RegExp('cat','g') //构造函数声明 它两所表达 ...

  7. 认识正则RegExp;

    1.什么是正则??? 就是一条规则,用于检验字符串的格式,目标就是字符串. *只要是表单提交的数据都是字符串 2.正则的定义??? (1)var reg=new RegExp() (2)var reg ...

  8. 原生js基础学习--正则RegExp

    转义字符"\" 使用反斜杠之后,会强制的将"\"之后的字符取消掉原来的意思转换成文本, 转义符号不会输出 var str= "abc\"de ...

  9. 正则RegExp对象的用法

    RegExp实例方法: 1.Test() RegExpObject.test(string) 判断string中是否有与表达式匹配的字符串,有则返回true,否则返回false 例如 var patt ...

随机推荐

  1. threading模块小结

    这篇文章是别人文章的一个观后小结,不是什么原创. 首先第一个例子: import threading import time def worker():     print "worker& ...

  2. Flask-ORM-数据库的对象关系映射模型-备忘

    ORM对象关系映射模型的特点: 优点 : 只需要面向对象编程, 不需要面向数据库编写代码. 对数据库的操作都转化成对类属性和方法的操作. 不用编写各种数据库的sql语句. 实现了数据模型与数据库的解耦 ...

  3. CSS之metra&title&base&target

    <!DOCTYPE html><html lang="en"><head> <style type="text/css" ...

  4. oracle入坑日记<五>数据表

    1   数据表 1.1.数据表是存放数据字段信息的地方:在Oracle,数据表拥有者单位是用户,同时数据表属于表空间.如: 登录my_user用户在orcl表空间下创建的表就是 my_user用户在o ...

  5. python 处理 https链接 socket报错 链接https

    // socket 链接 https 有问题 得去看看ssl文档 用法 import socketimport ssl def https_test(url): proto = "http& ...

  6. win10 64位,家庭版,C++,ini配置说明

      #include<windows.h> #include<iostream> #include <atlstr.h> using namespace std; ...

  7. 发送Http

    /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1& ...

  8. leetcode139

    class Solution { public: bool wordBreak(string s, vector<string> wordDict) { vector<, false ...

  9. leetcode1029

    class Solution(object): def twoCitySchedCost(self, costs: 'List[List[int]]') -> int: costs = sort ...

  10. Helm简介

    什么是Helm 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kuberne ...