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

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

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

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

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

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

    贪婪匹配:匹配到结束

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

    案例:

    $abc>=10&&$ABC<20

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

    使用正则:

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

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

    2、?= 是什么?

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

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

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

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

  • 相关阅读:
    把A库aa表结构复制到B库中生成bb表
    C #登录代码
    C# 跟查询有关的代码
    C# 输出用“*”组成的菱形
    POJ 3696 The Luckiest number 数论,GCD
    用一句SQL取出第 m 条到第 n 条记录的方法
    Web Services的基本原理
    常用SQL语句
    什么应用适合Web Services
    应该了解的垃圾收集机制(一)
  • 原文地址:https://www.cnblogs.com/zuojiayi/p/10935683.html
Copyright © 2011-2022 走看看