Regex 正则零宽断言
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 正则零宽断言相关推荐
- php 正则 零宽断言,正则表达式之零宽断言实例详解_正则表达式
这篇文章主要介绍了正则表达式之零宽断言,简单介绍了零宽断言的概念.分类及php实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了正则表达式之零宽断言.分享给大家供大家参考,具体如下: 前言 ...
- $python正则表达式系列(5)——零宽断言
本文主要总结了python正则零宽断言(zero-length-assertion)的一些常用用法. 1. 什么是零宽断言 有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面 ...
- 零宽断言java_正则表达之零宽断言(零宽度正预测先行断言)
最近为了对html文件进行源码处理,需要进行正则查找并替换.于是借着这个机会把正则系统地学一下,虽然以前也用过正则,但每次都是临时学一下混过关的.在学习的过程中还是遇到不少问题的,特别是零宽断言(这里 ...
- 正则 ?= 和 ?= 用法 以及零宽断言等概念
正则 ?<= 和 ?= 用法 参考网址:http://baike.baidu.com/link?url=2zORJF9GOjU8AkmuHDLz9cyl9yiL68PdW3frayzLwWQh ...
- 正则表达式零宽断言详解
在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存 ...
- 正则表达式之零宽断言
介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...
- php 零宽断言,正则表达式之零宽断言实例详解【基于PHP】
这篇文章主要介绍了正则表达式之零宽断言,简单介绍了零宽断言的概念.分类及php实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了正则表达式之零宽断言.分享给大家供大家参考,具体如下: 前言 ...
- php 零宽断言,正则表达式之零宽断言
介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...
- php 正则表达式 环视,正则表达式教程五 —— 环视(零宽断言)
环视(lookahead),有些也叫零宽断言,不过总感觉这名字太深奥,我喜欢叫环视. 正如它的别名一样,它的匹配是"零宽度"的,是不会占用字符的,只匹配文本中的特定位置,所以环视表 ...
最新文章
- git 使用和一些错误
- PyTorch 按索引赋值
- php扩展xdebug安装
- String.format()的使用
- Python3 —— 逗号分隔值CSV
- Linux VMware 快照不准,VmWare Workstation 关于Linux 虚拟机快照或克隆后 识别不到网卡问题...
- 售票系统的组件图和部署图_实物图+电气图讲解:教你学会看配电系统图,值得收藏!...
- Numpy 模块的使用
- 浩鲸科技是外包公司吗_广东电商外包服务公司是什么意思_聚财猫科技
- mysql+两行+一样+筛选_Excel两行交换及两列交换,快速互换相邻表格数据的方法...
- hihocoder1498 Diligent Robots
- 在线检测本机ip的网站
- 程序员的自我修养有哪些途径
- 《西部世界》暗示了大数据人工智能什么
- 动态规划之钢条切割问题——Rod-cutting problem
- 培训班H5宣传单怎么做?快进来拿方案~
- 支小蜜智慧食堂管理系统,聚合支付功能助力食堂支付
- C# GroupBy 用法
- 怎么搭建在线网校系统,靠谱的网校平台搭建开发公司
- 语音之家SOTA|开源发布: SPEECHIO_ASR_ZH00004 罗振宇跨年演讲
热门文章
- IDEA手动添加jar包
- mysql explain理解
- azure虚拟机挂载数据盘
- C++设计模式--观察者模式(Observer)
- xil_printf打印遇到的问题
- wpf 图表控件_LightningChart为外汇衍生品交易商提供数据可视化图表支持
- python顺序表数组_数据结构 | 顺序表
- 《剑指offer》——03. 数组中重复的数字——HashSet、哈希思想——java实现
- mysql事务隔离级别与锁_mysql事务隔离级别与锁
- idea.config.path is invalid 问题