c#正则表达式--环视
网上有一篇文章写的很好。请参见 正则表达式之环视 。现将自己的理解记录下来。
环视(lookaround)可以理解为限定条件。即字符串中,某个字符左边或右边能出现什么,不能出现什么。只是一个限定。从英文lookaround字面理解,因为英文是二维的,可以理解为看看左边和右边的情况。再匹配。
1、正则中开启环视
用小括号,?来开启一个环视。
表达式 | 说明 |
(?<=Expression) | 逆序肯定环视,表示所在位置左侧能够匹配Expression |
(?<!Expression) | 逆序否定环视,表示所在位置左侧不能匹配Expression |
(?=Expression) | 顺序肯定环视,表示所在位置右侧能够匹配Expression |
(?!Expression) | 顺序否定环视,表示所在位置右侧不能匹配Expression |
2、代码理解
例子1:字符右边限定 (顺序环视)
#region 环视 匹配除<p>或</p>之外的其余标签。string str = "aa<p>one</p>bb<div>two</div>cc";//开启一个顺序否定环视。 "<"字符右边不能出现"/?p\b)"即"p"和"/p"。 MatchCollection m = Regex.Matches(str, @"<(?!/?p\b)[^>]+>");for (int i = 0; i < m.Count; i++){MessageBox.Show(m[i].Value); //结果<div>和</div>} #endregion
例子2:字符左右边同时限定(逆序和顺序环视)
#region string str = "aa<p>one</p>bb<div>two</div>cc";MatchCollection m = Regex.Matches(str, @"(?<=<div>)[^<]+(?=</div>)");for (int i = 0; i < m.Count; i++){MessageBox.Show(m[i].Value); //结果two} #endregion
例子3:数字格式化成用“,”的货币格式。
转载于:https://www.cnblogs.com/crhdyl/p/4920946.html
c#正则表达式--环视相关推荐
- 深入理解正则表达式环视的概念与用法
在<深入理解正则表达式高级教程-环视>中已经对环视做了简单的介绍,但是,可能还有一些读者比较迷惑,今天特意以专题的形式,深入探讨一下正则表达式的环视的概念与用法. 深入理解正则表达式环视的 ...
- php 正则表达式 环视,php正则表达式环视详解
php正则表达式环视详解 1. 顺序肯定环视(?=exp) 零宽度正预测先行断言,又称顺序肯定环视,断言自身出现位置的后面能匹配表达式exp. 比如,匹配以"ing"结尾的单词前面 ...
- 正则表达式——环视(Lookaround)(几分钟学会环视)
正则运行测试网址:https://regex101.com/ 最开始学环视,是通过看<正则表达式必知必会>这本小册子,学完后感觉很模糊,好像会了,又好像不清楚,直到在网上看到下面这张图,才 ...
- 正则环视 php,php正则表达式环视详解
1. 顺序肯定环视(?=exp) 零宽度正预测先行断言,又称顺序肯定环视,断言自身出现位置的后面能匹配表达式exp. 比如,匹配以"ing"结尾的单词前面部分(除了"in ...
- 正则表达式环视否定例子
使用正则表达式来搜索文本是高效快捷的方式 比如要搜索下文中的红色字体, <tr><td>123</td><td>test</td><t ...
- php 正则表达式 环视,深入理解正则表达式高级教程
前面已经写过一篇文章<我眼里的正则表达式(入门)>介绍过正则表达式的基础和基本套路正则三段论:定锚点,去噪点,取数据了,接下来这篇文章,补充一点相对高级的概念:1. 概念一:按单字符匹配 ...
- php 正则表达式 环视,正则表达式教程五 —— 环视(零宽断言)
环视(lookahead),有些也叫零宽断言,不过总感觉这名字太深奥,我喜欢叫环视. 正如它的别名一样,它的匹配是"零宽度"的,是不会占用字符的,只匹配文本中的特定位置,所以环视表 ...
- Java 中正则表达式的经典用法总结——捕获组
正则表达式常用功能:匹配.切割.替换.获取(从字符串中提取指定格式字符) [String类下的正则的使用] String 类中有几个常用的方法,会涉及到正则表达式.如下: //根据正则表达式regex ...
- 深入浅出的javascript的正则表达式学习教程
原文链接 阅读目录 了解正则表达式的方法 了解正则表达式的方法 RegExp对象表示正则表达式,它是对字符串执行模式匹配的工具: 正则表达式的基本语法如下2种: 直接量语法: /pattern/att ...
最新文章
- 使用GoAccess分析Nginx日志
- 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration
- nyoj36最长公共子序列 动态规划
- maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
- spring boot 的使用(一)
- D3 Selections
- 华为隐藏功能扩大内存代码大全_发现将华为手机这3个功能打开,竟然可以将手机性能极限发挥...
- Linux命令第一篇
- 技术要求→物理安全→防雷击
- Windows7 下载android源码
- MathType编辑手写体
- 计算机开不了演示文稿ppt,电脑打不开ppt了怎么办
- [转]《博客园精华集》ASP.NET分册第2论筛选结果文章列表
- Error: While importing ‘run_app_dev‘, an ImportError was raised.
- MyBatis 游标查询大量数据
- 【arduino】常用芯片ATMEGA328P-AU 32TQFP资料详解
- 生鲜在B2C电商模式下存在问题,O2O模式解决生鲜电商物流配送难题
- 数据分析 面经(已拿到offer)
- Qt | QTableView的使用方法
- 微信公众帐号开发教程第2篇-开发模式启用及接口配置
热门文章
- Android---Android 屏幕尺寸与密度
- 转载:为什么使用ibatis而不用spring jdbcTemplate
- IFile、File与实体转换
- 号外:Mapinfo被Pitney Bowes公司收购
- 浅谈script标签中的async和defer
- Excel 单元格隐藏
- Android JNI入门第五篇——Android.mk分析
- [置顶] Android面试题目之三: 字符串转整形
- 经过研究发现。c++里面的const意思是说,我是const,成员也是const!!!
- 开源中国app说什么 旁边的那个图标是什么drawable