zoukankan      html  css  js  c++  java
  • 正则表达式匹配指定字符区间的内容,且不包含指定字符

    举例:(?<=%%!).*(?=%%~)

    (?<=%%!)       匹配一个位置,而不是字符.这个位置在 %%! 后面

    (?=%%~)        匹配一个位置,而不是字符.这个位置在 %%~ 前面

    .*                     这两个位置之间的所有字符.贪婪匹配模式

    .*?                   这两个位置之间的所有字符.懒惰匹配模式,也叫非贪婪模式

    贪婪匹配:匹配到结束

    非贪婪匹配:有多个的会匹配多个

    案例:

    $abc>=10&&$ABC<20

    希望匹配$abc$ABC,也就是>= <这些符号前的内容。

    使用正则:

    /.*?(?=>|<)/

    1、为什么不使用  .*  呢?
       答:如果使用.*,会只匹配到一次,也就是$abc>=10&&$ABC<20。

    2、?= 是什么?

          非捕获元(有3个):?:    ?=   ?!

          选择:圆括号将所有选择项括起来,相邻的选择项之间用 | 分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用 ?: 放在第一个选项前来消除这种副作用。

           ?= 正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串

           ?!  负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

  • 相关阅读:
    林大妈的JavaScript基础知识(二):编写JavaScript代码前的一些简单工作
    林大妈的JavaScript基础知识(一):JavaScript简史
    制作X509证书
    浏览器对象模型
    JS事件
    CSS操作
    Element节点
    Document节点
    Dom中的一些接口
    DOM节点的属性和方法
  • 原文地址:https://www.cnblogs.com/zuojiayi/p/10935683.html
Copyright © 2011-2022 走看看