java 正则表达式 非贪婪模式_详解正则表达式的贪婪模式与非贪婪模式
什么是正则表达式的贪婪与非贪婪匹配
如: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 正则表达式 非贪婪模式_详解正则表达式的贪婪模式与非贪婪模式相关推荐
- java中static修饰函数_详解java中static关键词的作用
在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...
- java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...
- java sort 第二个参数_详解java Collections.sort的两种用法
Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static > void sort(List list) { l ...
- java list for循环遍历_详解Java中list,set,map的遍历与增强for循环
详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for ...
- java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...
在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...
- java super关键字的作用_详解Java编程中super关键字的用法
通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...
- Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节
前言 Spring框架对Bean进行装配提供了很灵活的方式,下面归纳一下主要的方式: 在XML中进行显示配置 在Java中进行显示配置 隐式的bean发现机制和自动装配 而自动装配实现就需要注解扫描, ...
- Java 多线程断点下载文件_详解
本文转载于:http://blog.csdn.net/ibm_hoojo/article/details/6838222 基本原理:利用URLConnection获取要下载文件的长度.头部等相关信息, ...
- python正则表达式中的转义字符_详解python中正则表达式的反斜线的转义功能
最近深入研读了正则表达式的一本经典著作,对于在python中使用正则表达式时使用反斜线转义功能时有些心得,特与大家分享. 核心思想:在python中使用正则表达式时要切记反斜线具有两层转义功能,如果你 ...
最新文章
- 高精度定位!“天地一体”基础设施助中国北斗在商用领域“弯道超车”
- Javascript的原型链、instanceof与typeof
- Nginx/LVS/HAProxy 负载均衡软件的优缺点详解
- 【译】KNOWLEDGE EXTRACTION FROM UNSTRUCTURED TEXTS
- openfire学习4---android客户端聊天开发之聊天功能开发
- 14、java中的集合(1)
- java绑定click时间_JAVA面试之vue.js(一)
- 滑雪(洛谷-P1434)
- htt【RiPro网盘链接检测插件】目前支持四种常用网盘
- 基友扫雷通关跟我炫耀!于是用Python自动扫雷程序十秒通关
- 【操作系统】进程通信-思维导图
- 文件摆渡是什么意思_数据摆渡是什么意思?如何确保安全性?
- Hadoop运行时缺少hadoop dll winutils exe
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 火狐浏览器 + 插件scrapbook 制作仿站工具
- Ubuntu18.04下的模拟神器RetroArch
- Vue实现简单汇率转换器
- 用支付宝扫自己生成的网页二维码无法跳转的问题
- 上海相会 | 冒志鸿与丁磊畅谈ArcBlock未来宏图
- 20皇后的不是很正确的解法
热门文章
- CodeMapping:稀疏SLAM实时密集建图(帝国理工学院)
- 一文详解如何配置meld做git diff工具
- 缺陷检测算法汇总(传统+深度学习方式)|综述、源码
- 2021-11-10 YOLOX训练最新笔记总结(coco格式)
- html设置正则表达式,html 正则表达式
- ceph 代码分析 读_分布式存储 Ceph 的演进经验 SOSP 2019
- 读“深度学习在图像处理领域中的应用综述”有感
- antd Form.Item 中如何获取到Select的label值
- SpringBoot 连接mysql踩到的坑
- TaxonKit:小巧、高效、实用的NCBI分类学数据命令行工具