正则表达式中?的用法
正则表达式-问号的四种用法
原文符号
因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?
有无量词
问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。
非贪婪匹配
贪婪匹配
在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配
string pattern1 = @"a.*c"; // greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abcabc"
非贪婪匹配
在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配
string pattern1 = @"a.*?c"; // non-greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"
几个常用的非贪婪匹配Pattern
- *? 重复任意次,但尽可能少重复
- +? 重复1次或更多次,但尽可能少重复
- ?? 重复0次或1次,但尽可能少重复
- {n,m}? 重复n到m次,但尽可能少重复
- {n,}? 重复n次以上,但尽可能少重复
不捕捉模式
如何关闭圆括号的捕获能力?而只是用它来做分组,方法是在左括号的后边加上:?,这里第一个圆括弧只是用来分组,而不会占用捕获变量,所以$1的内容只能是steak或者burger,而永远不可能是bronto。
while(<>){
if(/(?:bronto)(steak|burger)/){
print "Fred wants a $1\n" ;
}
}
正则表达式中?的用法相关推荐
- 正则表达式中^的用法
用法一: 限定开头 文档上给出了解释是匹配输入的开始,如果多行标示被设置成了true,同时会匹配后面紧跟的字符. 比如 /^A/会匹配"An e"中的A,但是不会匹配&q ...
- 正则表达式中问号?的正确用法
正则表达式中"?"的用法大概有以下几种 用作重复次数限制功能,用在子表达式后,表示子表达式内容可以出现0次或1次 用于表示非贪婪匹配,必须跟在表示重复的符号后,即必须跟在 * + ...
- 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)
一 正则表达式 Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...
- oracle中取反_oracle正则表达式regexp_like的用法详解
oracle正则表达式regexp_like的用法详解 更新时间:2013年06月13日 17:42:05 作者: 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介 ...
- mysql 正则替换 换行,MySQL中使用replace、regexp进行正则表达式替换的用法分析
本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110100_cityHo ...
- mysql替换首字母_MySQL中使用replace、regexp进行正则表达式替换的用法分析
这篇文章主要介绍了MySQL中使用replace.regexp进行正则表达式替换的用法,结合具体实例形式分析了replace.regexp正则替换的使用技巧与相关注意事项,需要的朋友可以参考下 本文实 ...
- 正则表达式中反斜杠的另一用法
今天在写一个日期格式的正则表达式的时候,在网上发现一个大侠的写法: var result = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); ...
- python正则表达式中括号的用法_Python的正则表达式中的圆括号到底如何使用?
这个问题并不太严重,严格来说我这样提问有些草率,不过也有人关注那我就把自己百度探究的结果写一写好了,有错误则请指出来. 首先是文档说明: >>> import re >> ...
- 详解Python正则表达式中group与groups的用法
在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息. group方法是re.MatchObject类中的一个函数,用于返回匹配对象的整个匹配结果或特 ...
- js mysql替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析
本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110 ...
最新文章
- SilverLight 双向绑定
- Python下opencv使用笔记系列
- python删除指定文件夹下文件和文件夹的方法
- c语言程序设计第四版十二五,C语言程序设计/普通高等教育十二五规划教材
- 小米小爱蓝牙音箱_小米小爱蓝牙音箱——值否?
- 你还可以续命几次?回顾DockPanel Suite项目的发展史
- 29、jdbc操作数据库(6)
- 下列哪一项不是计算机网络的典型应用,09级计算机信息网络试卷A
- IE浏览器整页截屏程序
- java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy 错误解决办法
- arXiv pdf下载很慢的解决方法
- html页面css代码写在哪里,HTML、CSS代码书写规范
- 字节跳动BVC2解码器率先支持移动平台H.266标准8K解码
- 多点触摸与单点触摸接口主要区别【转】
- vue-amap - 基于Vue2.0和高德地图的地图组件
- fast neural style transfer图像风格迁移基于tensorflow实现
- 对象创建从农业社会到共产主义的发展
- POJ 2752 Seek the Name, Seek the Fame (KMP)
- 票据纸张尺寸对照表_粉丝要求,这期整理一版平面设计必备各种尺寸知识(收藏版))...
- linux如何查询文件及文件夹大小
热门文章
- XCTF-MISC-新手区-gif
- DVWA--Brute Force(暴力破解)--四个等级
- link 和 @import 的区别
- android 启动器开发,Android启动器(Launcher)开发详解
- 东莞理工c语言作业,东莞理工学院C语言网上作业..doc
- python一键取消注释_Python文件去除注释的方法
- aerials标准测试图像_Python 图像读写谁最快?不信就比一比
- css怎么把横向菜单变纵向_CSS 布局模式 + 居中布局
- MongoDB日志文件过大
- 存储安全与数据恢复基础手册-服务器篇