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正则表达式中问号的四种用法相关推荐

  1. 正则表达式-问号的四种用法

    正则表达式-问号的四种用法 原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\? 有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. 非贪婪 ...

  2. java正则表达式判断问号_正则表达式问号的四种用法详解

    原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\? 有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. 非贪婪匹配 贪婪匹配 在满足匹配时 ...

  3. 详解Python正则表达式中group与groups的用法

    在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息. group方法是re.MatchObject类中的一个函数,用于返回匹配对象的整个匹配结果或特 ...

  4. Java中switch的四种用法

    总共有四种不同形式的switch.两种是switch语句,两种是switch表达式,表达式会生成一个值.switch表达式没有"直通式"行为. 表达式,无直通行为 int numL ...

  5. Python 正则表达式-问号的四种用法

    (1).原文符号 因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,? (2).有无量词 问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次. (3).(非)贪婪匹 ...

  6. JS中this的四种用法

    1.在一般函数方法中使用 this 指代全局对象 function test(){this.x = 1;alert(this.x);}test(); // 1 2.作为对象方法调用,this 指代上级 ...

  7. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.  比如 SELECT * FROM [user ...

  8. mysql 中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  9. mysql中模糊查询的四种用法

    转载自  https://www.cnblogs.com/songfayuan/articles/7290158.html 下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可 ...

最新文章

  1. Android10.0系统启动之Launcher(桌面)启动流程-[Android取经之路]
  2. java获得一个空闲端口号_Python找出9个连续的空闲端口
  3. JDBC(九)DatabaseMetaData 数据库元数据
  4. JavaScript学习总结(六)——JavaScript判断数据类型总结
  5. C# Json转对象
  6. python字符编码解码,文件编码解码。
  7. repeater中分页aspnetpager是遇到的问题
  8. XML和JSON的使用总结
  9. MinGW-w64没有bin文件解决方法
  10. ligerui 用html 来初始化 ligerform
  11. 北邮教授石川:图神经网络需要解决的几个关键问题
  12. 花呗上征信,一文看懂征信所有问题
  13. JavaScript实现React实现网页转换成图片截屏下载
  14. 【jquery Ajax 练习】图书管理
  15. 18 - java基初 数组介绍 冒泡排序
  16. 磨人的小妖精 别让我遇到你
  17. Java坚挺 PHP要完?TIOBE最新榜单公布
  18. 华为mate20参数表_华为的mate20系列参数对比,该选择什么一目了然
  19. CAD显示problem loading acadres.dll(或其他dll) resource file解决方法
  20. 用android开发一个识别人形的app,一键切换背景

热门文章

  1. [译] 2018 年七个通过脑电图分析实现“读心术”的 Javascript 库
  2. docker容器的构建
  3. Netstat命令(windows下)
  4. Vue.js学习系列(二十七)-- 计算属性(一)
  5. 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
  6. 快速搭建LNMP(1 )
  7. DataSet和List 泛型之间互相转换 (转载, 作者写的很好)
  8. python学号怎么编写_用python编写学生管理系统
  9. cloud自动发卡平台cloudfaka_科亚k-cloud智能控制系统解决方案助力配混改性工厂
  10. android 按钮动画效果_【css特效】按钮动画 - 按压效果