Pattern类与Matcher方法的验证
1Pattern
- static Pattern compile(String regex)将给定的正则表达式编译到模式中。
- Matcher matcher(CharSequence input)创建匹配给定输入与此模式的匹配器。
- boolean matches()尝试将整个区域与模式匹配。
- String[] split(CharSequence input) 围绕此模式的匹配拆分给定输入序列。
String regexPattern = "\\d+";
static Pattern compile(String regex) 将给定的正则表达式编译到模式中。 regex正则Pattern p = Pattern.compile(regexPattern);Matcher matcher(CharSequence input) 创建匹配给定输入与此模式的匹配器。 ,input匹配源Matcher m = p.matcher("12312331-");
boolean matches() 尝试将整个区域与模式匹配。 System.out.println("----------boolean matches()尝试将整个区域与模式匹配。 ------");System.out.println("是否匹配:" + m.matches());String[] split(CharSequence input) 围绕此模式的匹配拆分给定输入序列。 System.out.println("------- //String[] split(CharSequence input)分割返回数组------");String[] str=p.split("aaaaaa:22222bbbbbbb:3333333ccccccc:4444444"); for (String string : str) {System.out.println(string);}static boolean matches(String regex, CharSequence input) 编译给定正则表达式并尝试将给定输入与其匹配。 用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.System.out.println("----boolean matches() 尝试将整个区域与模式匹配。 ----------");System.out.println(Pattern.matches("\\d+","2223"));//返回true System.out.println(Pattern.matches("\\d+","2334dd"));//返回false,需要匹配到所有字符串才能返回true,这里dd不能匹配到 System.out.println(Pattern.matches("\\d+","we233"));//返回false,需要匹配到所有字符串才能返回true,这里we不能匹配到 输出:----------boolean matches()尝试将整个区域与模式匹配。 ------
是否匹配:false
------- //String[] split(CharSequence input)分割返回数组------
aaaaaa:
bbbbbbb:
ccccccc:
----boolean matches() 尝试将整个区域与模式匹配。 ----------
true
false
false
2Matcher类
- lookingAt() 尝试将从区域开头开始的输入序列与该模式匹配。此方法始终从区域的开头开始;与之不同的是,它不需要匹配整个区域。
public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。
此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。start()返回第一个匹配字符的索引。
- end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. 返回最后匹配字符之后的偏移量。
- group()返回匹配到的子字符串
//lookingAt() 尝试将从区域开头开始的输入序列与该模式匹配。此方法始终从区域的开头开始;与之不同的是,它不需要匹配整个区域。 System.out.println("-------//lookingAt()------");Matcher m1=p.matcher("23ssss"); System.out.println(m1.lookingAt());//返回true,因为\d+匹配到了前面的23 Matcher m2=p.matcher("sss23"); System.out.println(m2.lookingAt());//返回false,因为\d+不能匹配前面的sss//public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。 // 此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。 System.out.println("-------public boolean find()-----");Matcher mm=p.matcher("22bb23"); System.out.println(mm.find());//返回true Matcher mm2=p.matcher("aa2223"); System.out.println(mm2.find());//返回true Matcher mm3=p.matcher("aa2223bb"); System.out.println(mm3.find());//返回true Matcher mm4=p.matcher("aabb"); System.out.println(mm4.find());//返回false // start()返回第一个匹配字符的索引。 // end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. 返回最后匹配字符之后的偏移量。 //group()返回匹配到的子字符串 System.out.println("------find----start----end---group-");Matcher mmm=p.matcher("aaaabbbb3333ddd"); System.out.println(mmm.find());//匹配3333 返回trueSystem.out.println(mmm.start());//返回8System.out.println(mmm.end());//返回12,返回的是3333后的索引号 System.out.println(mmm.group());//返回3333 System.out.println("---");Matcher mmm2=p.matcher("11bb"); System.out.println(mmm2.lookingAt()); //匹配11System.out.println(mmm2.start()); //返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0 System.out.println(mmm2.end()); //返回2 System.out.println(mmm2.group()); //返回11System.out.println("---");Matcher mmm3=p.matcher("222344"); System.out.println(mmm3.matches()); //匹配整个字符串 System.out.println(mmm3.start()); //返回0System.out.println(mmm3.end()); //返回6,原因相信大家也清楚了,因为matches()需要匹配所有字符串 System.out.println(mmm3.group()); //返回222344 输出:-------//lookingAt()------
true
false
-------public boolean find()-----
true
true
true
false
------find----start----end---group-
true
8
12
3333
---
true
0
2
11
---
true
0
6
222344
3正则的高级使用
Pattern p1=Pattern.compile("\\d+"); Matcher m1=p1.matcher("aaaaa:1111 bbbbb:22222 cccccc:ddddd:23d"); while(m1.find()) { System.out.println(m1.group()); }
输出:
1111
22222
23
转载于:https://www.cnblogs.com/feiZhou/p/9344425.html
Pattern类与Matcher方法的验证相关推荐
- 正则表达式中Pattern类、Matcher类和matches()方法简析
1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一 ...
- 第三次学JAVA再学不好就吃翔(part66)--Pattern类和Matcher类
学习笔记,仅供参考 文章目录 Pattern类 典型的调用顺序 Pattern类的compile方法 Pattern类的matcher方法 Matcher类的matches方法 Matcher类 fi ...
- 详解Pattern类和Matcher类
java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本文时,打开java API文档,当介绍到哪个方法时,查看java API中的方法说明,效果 ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- java pattern详解_JAVA正则表达式:Pattern类与Matcher类详解
以下我们就分别来看看这两个类: 一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式 ((A)(B(C)))中,存在四个这样的组: 1 ((A) ...
- java正则表达式类_java中正则表达式之Pattern类与Matcher类
java中正则表达式之Pattern类与Matcher类 ======================================================================= ...
- pattern类和matcher类,math类,Random类,Date类,SimpleDateFormat类,calender类
课堂笔记2020.05.03 day14 pattern类和matcher类 模式器:正则表达式的编译(也就是将正则表达是封装起来). Pattern p = Pattern.compile(&quo ...
- 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)
JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...
最新文章
- LongAdder解析
- HDU2196[树形dp+二次扫描]java和c++版本题解
- 人人都能学会的python编程教程11:定义函数
- [转]C#中的委托和事件(续)
- 1.设计模式中监听模式(观察者模式)(Python实现)
- Mac下下载android4.2源码,进行源码调试
- suse php5,简简单单搭建linux SuSE LAMP环境
- Javaee 应用分层架构
- 会议交流 | CAAI BDSC2021大会专题七:社会计算与开放知识图谱
- 大数据2019年的三大趋势你看了吗?
- 为什么我的mysql比redis快_为什么redis是单线程的以及为什么这么快?
- 使用idea导入文件夹作为项目时,在项目中的文件夹可能会被隐藏
- 2021美赛A题元胞自动机解法(M奖)
- 找不到该项目(无法删除文件)
- Touch 电容式触摸按键 触摸按键PCB设计参考
- 一般计算机命名规则,详解intel处理器命名规则
- 非转基因保护品种覆盖南北 北方旱作国稻种芯-517功能苦瓜稻
- PTA解封日期C语言
- ChatGPT教程之深入了解魔术背后的技术
- 2017-09-02:公共钥匙盒