什么是正则表达式的贪婪与非贪婪匹配

如:String str="abcaxc";

Patter p="ab*c";

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

下面通过实例代码看下正则表达式的贪婪模式与非贪婪模式,具体内容如下所示:

贪婪模式:能匹配的最大部分

s = "This is a number 234-235-22-4223"

r = re.match(r"(.+)(\d+-\d+-\d+-\d+",s)

r.groups()

("This is a number 23","4-235-22-4223")

贪婪模式就是“.+”中的+会一直查找到最后一个符合条件的字符,所以上述代码中最前面的两个数字在提取数字是没有被提取到

非贪婪模式:匹配越少越好

s = "This is a number 234-235-22-4223"

r = re.match(r"(.+?)(\d+-\d+-\d+-\d+",s)

r.groups()

("This is a number ","234-235-22-4223")

非贪婪模式就是在“.+?"会匹配到第一个符合条件的字符就停止

总结

以上所述是小编给大家介绍的正则表达式的贪婪模式与非贪婪模式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

java 正则表达式 非贪婪模式_详解正则表达式的贪婪模式与非贪婪模式相关推荐

  1. java中static修饰函数_详解java中static关键词的作用

    在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...

  2. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入

    一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...

  3. java sort 第二个参数_详解java Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static > void sort(List list) { l ...

  4. java list for循环遍历_详解Java中list,set,map的遍历与增强for循环

    详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for ...

  5. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  6. java super关键字的作用_详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...

  7. Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节

    前言 Spring框架对Bean进行装配提供了很灵活的方式,下面归纳一下主要的方式: 在XML中进行显示配置 在Java中进行显示配置 隐式的bean发现机制和自动装配 而自动装配实现就需要注解扫描, ...

  8. Java 多线程断点下载文件_详解

    本文转载于:http://blog.csdn.net/ibm_hoojo/article/details/6838222 基本原理:利用URLConnection获取要下载文件的长度.头部等相关信息, ...

  9. python正则表达式中的转义字符_详解python中正则表达式的反斜线的转义功能

    最近深入研读了正则表达式的一本经典著作,对于在python中使用正则表达式时使用反斜线转义功能时有些心得,特与大家分享. 核心思想:在python中使用正则表达式时要切记反斜线具有两层转义功能,如果你 ...

最新文章

  1. 高精度定位!“天地一体”基础设施助中国北斗在商用领域“弯道超车”
  2. Javascript的原型链、instanceof与typeof
  3. Nginx/LVS/HAProxy 负载均衡软件的优缺点详解
  4. 【译】KNOWLEDGE EXTRACTION FROM UNSTRUCTURED TEXTS
  5. openfire学习4---android客户端聊天开发之聊天功能开发
  6. 14、java中的集合(1)
  7. java绑定click时间_JAVA面试之vue.js(一)
  8. 滑雪(洛谷-P1434)
  9. htt【RiPro网盘链接检测插件】目前支持四种常用网盘
  10. 基友扫雷通关跟我炫耀!于是用Python自动扫雷程序十秒通关
  11. 【操作系统】进程通信-思维导图
  12. 文件摆渡是什么意思_数据摆渡是什么意思?如何确保安全性?
  13. Hadoop运行时缺少hadoop dll winutils exe
  14. 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
  15. 火狐浏览器 + 插件scrapbook 制作仿站工具
  16. Ubuntu18.04下的模拟神器RetroArch
  17. Vue实现简单汇率转换器
  18. 用支付宝扫自己生成的网页二维码无法跳转的问题
  19. 上海相会 | 冒志鸿与丁磊畅谈ArcBlock未来宏图
  20. 20皇后的不是很正确的解法

热门文章

  1. CodeMapping:稀疏SLAM实时密集建图(帝国理工学院)
  2. 一文详解如何配置meld做git diff工具
  3. 缺陷检测算法汇总(传统+深度学习方式)|综述、源码
  4. 2021-11-10 YOLOX训练最新笔记总结(coco格式)
  5. html设置正则表达式,html 正则表达式
  6. ceph 代码分析 读_分布式存储 Ceph 的演进经验 SOSP 2019
  7. 读“深度学习在图像处理领域中的应用综述”有感
  8. antd Form.Item 中如何获取到Select的label值
  9. SpringBoot 连接mysql踩到的坑
  10. TaxonKit:小巧、高效、实用的NCBI分类学数据命令行工具