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

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

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

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

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

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

    贪婪匹配:匹配到结束

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

    案例:

    $abc>=10&&$ABC<20

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

    使用正则:

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

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

    2、?= 是什么?

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

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

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

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

  • 相关阅读:
    Python 操作 MySQL 之 pysql 与 SQLAchemy
    Python 列表元素里面含有字典或者列表进行排序
    Windows PyCharm QtDesigner/pyuic5配置
    Python之科学运算Pandas模块
    Linux 主要目录速查表
    php读取文件大小
    上传视频云点播和查看视频
    wordppt转pdf
    微信登录
    微信公众号
  • 原文地址:https://www.cnblogs.com/zuojiayi/p/10935683.html
Copyright © 2011-2022 走看看