Python正则表达式中问号的四种用法
1.原文符号
因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,?
2.有无量词
问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。
3.(非)贪婪匹配
贪婪匹配
在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配
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次以上,但尽可能少重复
4.不捕捉模式
如何关闭圆括号的捕获能力?而只是用它来做分组,方法是在左括号的后边加上:?,这里第一个圆括弧只是用来分组,而不会占用捕获变量,所以$1的内容只能是steak或者burger,而永远不可能是bronto。
while(<>){if(/(?:bronto)(steak|burger)/){print ("Fred wants a $1\n" );}
}
Python基础太难学?小编创建了一个Python学习交流QQ群:531509025,群里有大量基础入门知识,都是从零开始的,群里还有专业的人给你解答问题。寻找有志同道合的小伙伴,互帮互助,群里还有不错PDF电子书!
Python正则表达式中问号的四种用法相关推荐
- 正则表达式-问号的四种用法
正则表达式-问号的四种用法 原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\? 有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. 非贪婪 ...
- java正则表达式判断问号_正则表达式问号的四种用法详解
原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\? 有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. 非贪婪匹配 贪婪匹配 在满足匹配时 ...
- 详解Python正则表达式中group与groups的用法
在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息. group方法是re.MatchObject类中的一个函数,用于返回匹配对象的整个匹配结果或特 ...
- Java中switch的四种用法
总共有四种不同形式的switch.两种是switch语句,两种是switch表达式,表达式会生成一个值.switch表达式没有"直通式"行为. 表达式,无直通行为 int numL ...
- Python 正则表达式-问号的四种用法
(1).原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,? (2).有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. (3).(非)贪婪匹 ...
- JS中this的四种用法
1.在一般函数方法中使用 this 指代全局对象 function test(){this.x = 1;alert(this.x);}test(); // 1 2.作为对象方法调用,this 指代上级 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user ...
- mysql 中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- mysql中模糊查询的四种用法
转载自 https://www.cnblogs.com/songfayuan/articles/7290158.html 下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可 ...
最新文章
- Android10.0系统启动之Launcher(桌面)启动流程-[Android取经之路]
- java获得一个空闲端口号_Python找出9个连续的空闲端口
- JDBC(九)DatabaseMetaData 数据库元数据
- JavaScript学习总结(六)——JavaScript判断数据类型总结
- C# Json转对象
- python字符编码解码,文件编码解码。
- repeater中分页aspnetpager是遇到的问题
- XML和JSON的使用总结
- MinGW-w64没有bin文件解决方法
- ligerui 用html 来初始化 ligerform
- 北邮教授石川:图神经网络需要解决的几个关键问题
- 花呗上征信,一文看懂征信所有问题
- JavaScript实现React实现网页转换成图片截屏下载
- 【jquery Ajax 练习】图书管理
- 18 - java基初 数组介绍 冒泡排序
- 磨人的小妖精 别让我遇到你
- Java坚挺 PHP要完?TIOBE最新榜单公布
- 华为mate20参数表_华为的mate20系列参数对比,该选择什么一目了然
- CAD显示problem loading acadres.dll(或其他dll) resource file解决方法
- 用android开发一个识别人形的app,一键切换背景
热门文章
- [译] 2018 年七个通过脑电图分析实现“读心术”的 Javascript 库
- docker容器的构建
- Netstat命令(windows下)
- Vue.js学习系列(二十七)-- 计算属性(一)
- 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
- 快速搭建LNMP(1 )
- DataSet和List 泛型之间互相转换 (转载, 作者写的很好)
- python学号怎么编写_用python编写学生管理系统
- cloud自动发卡平台cloudfaka_科亚k-cloud智能控制系统解决方案助力配混改性工厂
- android 按钮动画效果_【css特效】按钮动画 - 按压效果