正则表达式的三种模式
来源:互联网 发布:女娲出装 知乎 编辑:程序博客网 时间:2024/05/13 14:52
正则表达式的匹配有三种模式:
- Greedy(贪婪的)
- Reluctant(不情愿的)
- Possessive(独占的)
这三种模式的名字起得非常的巧妙,分别来看一下:
Greedy:
Pattern p = Pattern.compile("(.{3,10})([0-9])");
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
这种模式匹配的结果是“aaaa5bbbb6”,因为“贪婪的”会首先选择最大范围,即匹配10个字符
匹配不成功,然后吐出最后一个字符,再次匹配成功。
Reluctant:
Pattern p = Pattern.compile("(.{3,10}?)([0-9])");
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
匹配的结果变成了"aaaa5",因为“不情愿的”会首先选择最小的范围,即匹配3个字符
匹配不成功会继续吃进下一个字符,直至匹配成功。
Possessive:
Pattern p = Pattern.compile("(.{3,10}+)([0-9])");
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
这时匹配不成功,因为独占模式更霸道!只选择吃进10个字符,而不会选择吐出字符!
0 0
- 正则表达式的三种模式
- 正则表达式的三种模式
- 正则表达式-量词的三种模式
- 正则表达式三 (修正模式)
- 【转载】JAVA正则表达式的三种模式的区别-greedy reluctant possessive
- JAVA 正则表达式的三种模式: 贪婪, 勉强和占有的讨论
- 正则表达式的三种模式【贪婪、勉强、侵占】的分析
- 正则表达式的3种匹配模式
- 正则表达式的3种匹配模式
- 正则表达式的3种匹配模式
- 正则表达式的两种模式
- 正则表达式和模式匹配简介(三)
- 正则表达式的常用模式
- 正则表达式的模式匹配
- 正则表达式的模式字符
- 正则表达式的常用模式
- 正则表达式的常用模式
- ios-正则表达式使用的三种方法和正则表达式
- android WebView 加载重定向页面无法后退解决方案
- Linux 音频ALSA技术说明--part2[转&学习]
- hdu 2888 Check Corners(RMQ)
- mysql中创建表格---数据类型
- 配置文件读写
- 正则表达式的三种模式
- AudioManager详解
- Android 命名规范
- Linux 音频ALSA技术说明--part3[转&学习]
- 从网页中传入一个Id 通过Id 删除或者查询
- Some projects cannot be imported because they already exist in the workspace
- javascript正则表达式
- 解一元二次方程
- delete和truncate的区别