zoukankan      html  css  js  c++  java
  • js正则表达式 (.+)与(.+?)

    (.+)默认是贪婪匹配

    (.+?)为惰性匹配

    疑问号让.+的搜索模式从贪婪模式变成惰性模式。

    var str = 'aaa<div style="font-color:red;">123456</div>bbb'

    <.+?>会匹配<div style="font-color:red;">

    <.+>会匹配<div style="font-color:red;">123456</div>

    要在浏览器测试结果的话,输入:

    var str = 'aaa<div style="font-color:red;">123456</div>bbb'

    str.match(/<.+?>/);

    str.match(/<.+>/);

    下面举个简单的例子来说明。

    1.贪婪匹配是先看整个字符串是否匹配,如果不匹配,它会去掉字符串的最后一个字符,并再次尝试。如果还不匹配,那么再去掉当前最后一个,直到发现匹配或不剩任何字符。

    var str='abcdabceba'

    /.+b/ //匹配一个或多个任意字符后面跟一个字母b

    执行str.match(/.+b/)

    第一次(先看整个字符串是否是一个匹配) abcdabceba 不匹配,然后去掉最后一个字符a

    第二次(去掉最后一个字符后再匹配) abcdabceb 匹配,返回abcdabceb。

    2.惰性匹配是从左侧第一个字符开始向右匹配, 先看第一个字符是不是一个匹配, 如果不匹配就加入下一个字符再尝式匹配, 直到发现匹配...

    执行str.match(/.+?b/)

    第一次(读入左侧第一个字符) a 不匹配加一个再式

    第二次 ab 匹配,返回ab

  • 相关阅读:
    Centos7 ftp服务器搭建
    搭建单机版spark
    JAVA JDBC大数据量导入Mysql
    springboot使用自带连接池连接postgre
    linux centos6安装postgresql
    SpringBoot中配置不序列化返回值为null的属性
    sublime 3 安装格式化JSON插件
    HIve分组查询返回每组的一条记录
    FastJson乱序问题
    深入理解迪杰斯特拉算法
  • 原文地址:https://www.cnblogs.com/chenzxl/p/14455467.html
Copyright © 2011-2022 走看看