http://baike.baidu.com/link?url=sLfovpZmIcS5Uz_tiidXoVtjl30Tu3wARMfhnEcbgEGzsb8g1z7dvtGNXTulu1KDodmiuTAP5ODr_R5D2myeeq

零宽断言

1_1、(?=exp)   零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp

1_2、(?<=exp) 零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp

负向零宽

2_1、(?!exp)零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp

2_2、(?<!exp)零宽度负回顾后发断言来断言此位置的前面不能匹配表达式exp

举例1

1_1,1_2: (?<=(aa|bb)).+?(?=ing) 匹配以aa或bb开头,ing结束之间的字符

aabbingxxing

匹配结果: 1.bb 2.ingxx

第一次从aabbing匹配出bb,当前匹配到字符串第四个位置,剩下的字符串是ingxxing,

由于(?<=exp)不占宽度,ingxxing前面是bb,连起来就是bbingxxing,所以匹配出ingxx

(注: 以上解释只是个人根据结果推测出来的,说法可能不一定准确,但结果经过测试是正确的,只是方便理解,

aabb1ingxxing 通过这个正则匹配出来的结果是:bb1)

举例2:

2_1,2_2 : (?<!(a1|b2))\\d{1,}?(?!ing)

a1b23ingxxing a844ing cc66dd只有3被过滤掉了,3前面是b2后面是ing

匹配结果: 1,2, 8,4,6,6

Regex titleRegex3 = new Regex("(?<!(a1|b2))\\w{2,}?(?!ing)" );
            String strong3 = "a1b23ingxxinga844ingcc66dd";
            MatchCollection mcs3 = titleRegex3.Matches(strong3);

for (int i = 0; i < mcs3.Count; i++)
            {
                Console.WriteLine(i + "---" + mcs3[i].Value);
            }

匹配结果

0---a1, 1---23i, 2---ng, 3---xxi, 4---ng, 5---a8,

6---44i, 7---ng, 8---cc, 9---66, 10---dd

递归匹配:

  匹配所有div及div中有嵌套的div

<div[^>]*>
      [^<>]*
       ( (
           (?'Open'<div[^>]*>)
           [^<>]*
         )+
         (
           (?'-Open'</div>)
           [^<>]*
         )+
       )*
      (?(Open)(?!))
    </div>

能匹配出

    <div>aa</div>

<div>aa <div> bb <div>cc</div></div></div>

div中包含其他标签的不能匹配出来,如<div>aa<span>bb</span></div>

 

转载于:https://www.cnblogs.com/c2603/p/5033191.html

Regex 正则零宽断言相关推荐

  1. php 正则 零宽断言,正则表达式之零宽断言实例详解_正则表达式

    这篇文章主要介绍了正则表达式之零宽断言,简单介绍了零宽断言的概念.分类及php实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了正则表达式之零宽断言.分享给大家供大家参考,具体如下: 前言 ...

  2. $python正则表达式系列(5)——零宽断言

    本文主要总结了python正则零宽断言(zero-length-assertion)的一些常用用法. 1. 什么是零宽断言 有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面 ...

  3. 零宽断言java_正则表达之零宽断言(零宽度正预测先行断言)

    最近为了对html文件进行源码处理,需要进行正则查找并替换.于是借着这个机会把正则系统地学一下,虽然以前也用过正则,但每次都是临时学一下混过关的.在学习的过程中还是遇到不少问题的,特别是零宽断言(这里 ...

  4. 正则 ?= 和 ?= 用法 以及零宽断言等概念

    正则 ?<=  和 ?= 用法 参考网址:http://baike.baidu.com/link?url=2zORJF9GOjU8AkmuHDLz9cyl9yiL68PdW3frayzLwWQh ...

  5. 正则表达式零宽断言详解

    在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存 ...

  6. 正则表达式之零宽断言

    介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...

  7. php 零宽断言,正则表达式之零宽断言实例详解【基于PHP】

    这篇文章主要介绍了正则表达式之零宽断言,简单介绍了零宽断言的概念.分类及php实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了正则表达式之零宽断言.分享给大家供大家参考,具体如下: 前言 ...

  8. php 零宽断言,正则表达式之零宽断言

    介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...

  9. php 正则表达式 环视,正则表达式教程五 —— 环视(零宽断言)

    环视(lookahead),有些也叫零宽断言,不过总感觉这名字太深奥,我喜欢叫环视. 正如它的别名一样,它的匹配是"零宽度"的,是不会占用字符的,只匹配文本中的特定位置,所以环视表 ...

最新文章

  1. git 使用和一些错误
  2. PyTorch 按索引赋值
  3. php扩展xdebug安装
  4. String.format()的使用
  5. Python3 —— 逗号分隔值CSV
  6. Linux VMware 快照不准,VmWare Workstation 关于Linux 虚拟机快照或克隆后 识别不到网卡问题...
  7. 售票系统的组件图和部署图_实物图+电气图讲解:教你学会看配电系统图,值得收藏!...
  8. Numpy 模块的使用
  9. 浩鲸科技是外包公司吗_广东电商外包服务公司是什么意思_聚财猫科技
  10. mysql+两行+一样+筛选_Excel两行交换及两列交换,快速互换相邻表格数据的方法...
  11. hihocoder1498 Diligent Robots
  12. 在线检测本机ip的网站
  13. 程序员的自我修养有哪些途径
  14. 《西部世界》暗示了大数据人工智能什么
  15. 动态规划之钢条切割问题——Rod-cutting problem
  16. 培训班H5宣传单怎么做?快进来拿方案~
  17. 支小蜜智慧食堂管理系统,聚合支付功能助力食堂支付
  18. C# GroupBy 用法
  19. 怎么搭建在线网校系统,靠谱的网校平台搭建开发公司
  20. 语音之家SOTA|开源发布: SPEECHIO_ASR_ZH00004 罗振宇跨年演讲

热门文章

  1. IDEA手动添加jar包
  2. mysql explain理解
  3. azure虚拟机挂载数据盘
  4. C++设计模式--观察者模式(Observer)
  5. xil_printf打印遇到的问题
  6. wpf 图表控件_LightningChart为外汇衍生品交易商提供数据可视化图表支持
  7. python顺序表数组_数据结构 | 顺序表
  8. 《剑指offer》——03. 数组中重复的数字——HashSet、哈希思想——java实现
  9. mysql事务隔离级别与锁_mysql事务隔离级别与锁
  10. idea.config.path is invalid 问题