Java正则表达式中量词贪婪型,勉强型,占有型简单描述
来源:互联网 发布:局域网屏幕监控软件 编辑:程序博客网 时间:2024/05/16 00:43
今天看《Thinking In java》正则表达式这一节量词有讲到量词特意写了一篇博客来总结。
量词的意思是:描述了一个模式吸入输入文本的方式
- 贪婪型 :java正则表达式默认匹配是贪婪型,就是原始表达式(x?),会 为所有可能的模式发现尽可能多的匹配。
Matcher m = Pattern.compile("x+") .matcher("xxxxxx"); if(m.find()) System.out.println(m.group());/*Oputput:xxxxxx*/
- 勉强型 :原始表达式后边加个?号(x+?),会匹配满足模式所需的最少字符数。
Matcher m = Pattern.compile("x+?") .matcher("xxxxxx"); if(m.find()) System.out.println(m.group());/*Output:x*/
- 占有型 :原始表达式后边加个+号(x++), 当正则表达式被应用于字符串时,他会产生相当多的状态,以便匹配失败时可以回溯。而“占有型”量词不会保存这些中间状态,因此他们可以防止回溯。他们常常用于防止正则表达式失败,因此可以使用正则表达式起来更加有效。
Matcher m = Pattern.compile("\\d+\\d") // \\d+都匹配到了3 6 0 3,遇到空格就无法匹配了,可是后面的\\d就无法匹配了,他就回溯,最终让后一个\\d匹配3 6 0 3 .matcher("123 456 78910 111213"); while(m.find()) System.out.println(m.group()); System.out.println("----------------------------------------"); Matcher m2 = Pattern.compile("\\d++\\d") // 但是占有型则不,它不回溯,也就一个也匹配不成了。 .matcher("123 456 78910 111213"); while(m2.find()) System.out.println(m2.group()); }/*Output:12345678910111213----------------------------------------*/
阅读全文
0 0
- Java正则表达式中量词贪婪型,勉强型,占有型简单描述
- Java 正则表达式中量词的贪婪型,勉强型和占有型讲解
- Java 正则表达式 量词 --- 三种匹配模式【贪婪型、勉强型、占有型】
- Java 正则表达式 量词 --- 三种匹配模式【贪婪型、勉强型、占有型】
- 正则表达式中量词贪婪型和勉强型的讨论(Java语言描述)
- Java正则表达式匹配模式[贪婪型、勉强型、占有型]
- java正则表达式匹配模式[贪婪型、勉强型、占有型]
- java学习笔记001之正则表达式贪婪型、勉强型和占有型p299
- Java正则表达式匹配模式[贪婪型、勉强型、占有型]
- Java-----正则表达式匹配模式[贪婪模式、勉强模式、占有模式]
- JAVA 正则表达式的三种模式: 贪婪, 勉强和占有的讨论
- Java正则表达式学习 贪婪 勉强 侵占
- 正则表达式笔记 3 贪婪、勉强、独占三种匹配量词*
- 正则表达式笔记 3 贪婪、勉强、独占三种匹配量词
- 关于正则表达式中贪婪量词与懒惰量词的形象解释
- [疯狂Java]正则表达式:Java正则表达式语法、贪婪模式/勉强模式
- java 正则表达式量词
- 正则表达式占有优先量词以及固化分组的使用
- 对称加密算法/非对称加密算法/不可逆加密算法
- 解决运行scrapy是报错No module named cryptography,解决cryptography的安装问题,解决libffi的安装问题
- 安装Intel HAXM为Android 模拟器加速,30秒内启动完成
- 7-56 找鞍点(20 分)
- 解决JS浮点数(小数)计算加减乘除的BUG
- Java正则表达式中量词贪婪型,勉强型,占有型简单描述
- GIT JSON MAVEN DOCKER
- 个人学习记录-无用处
- 论文阅读:How to Construct Deep Recurrent Neural Networks
- 程序的编译链接过程
- python提取文章中的中文数字
- 任学堂说科技:数百万人的噩梦,人工智能将侵蚀银行岗位,从业者该如何自救?
- Linux中的基本网络配置
- vue2.0引用vue-awesome-swiper插件实现左右滑动轮播效果