Java中正则Matcher类的matches()、lookAt()和find()的差别
參考博文地址:http://www.oseye.net/user/kevin/blog/170
1、matcher():仅仅有在整个字符串全然匹配才返回true,否则返回false。
可是假设部分匹配成功。匹配的位置将移动到下次匹配的位置
2、lookingAt():总是从第一个字符開始匹配。不管匹配成功与否,都不会再继续向下匹配
3、find():部分匹配,假设匹配成功。返回true,匹配的位置移动到下次匹配的位置。
package com.qunar.fresh.junweiyu.Test; import java.util.regex.Matcher;
import java.util.regex.Pattern; public class Test_regx {
public static void main(String[] args){
Pattern pattern = Pattern.compile("\\d{3,5}");
String s = "123-34345-234-00";
Matcher matcher = pattern.matcher(s); /*matches:整个匹配,仅仅有整个字符序列全然匹配成功,才返回True,否则返回False。 但假设前部分匹配成功,将移动下次匹配的位置*/
System.out.println(matcher.matches()); /*false*/ /*測试匹配的位置*/
matcher.find();
System.out.println(matcher.start()); /*4*/ /*重置匹配的位置*/
matcher.reset(); /*find:部分匹配,从当前位置開始匹配,找到一个匹配的子串,将移动下次匹配的位置*/
System.out.println(matcher.find());/*true*/
System.out.println(matcher.group() + "---" + matcher.start());/*123---0*/
System.out.println(matcher.find());/*true*/
System.out.println(matcher.group() + "---" + matcher.start());/*34345---4*/ /*lookingAt:部分匹配。总是从第一个字符进行匹配,匹配成功了不再继续匹配。匹配失败了,也不继续匹配。 */
System.out.println(matcher.lookingAt());/*true*/
System.out.println(matcher.group() + "---" + matcher.start());/*123---0*/ System.out.println(matcher.lookingAt());/*true*/
System.out.println(matcher.group() + "---" + matcher.start());/*123-0*/ } }
Java中正则Matcher类的matches()、lookAt()和find()的差别的更多相关文章
- Java中正则Matcher类的matches()、lookAt()和find()的区别
在Matcher类中有matches.lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下: matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回 ...
- Java中正则Matcher类的matches()、lookAt()和find()的区别<转>
在Matcher类中有matches.lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下: matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回 ...
- Java字符串的匹配问题,String类的matches方法与Matcher类的matches方法的使用比较,Matcher类的matches()、find()和lookingAt()方法的使用比较
参考网上相关blog,对Java字符串的匹配问题进行了简单的比较和总结,主要对String类的matches方法与Matcher类的matches方法进行了比较. 对Matcher类的matches( ...
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
- 带有静态方法的类(java中的math类)
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
- java中基于TaskEngine类封装实现定时任务
主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...
- Java中的Unsafe类111
1.Unsafe类介绍 Unsafe类是在sun.misc包下,不属于Java标准.但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty.Hadoo ...
- Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
随机推荐
- mfc消息
ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景. ...
- NETCORE使用DB First
1)引用 (1)Install-Package Microsoft.EntityFrameworkCore (2)Install-Package Microsoft.EntityFrameworkCo ...
- HTML页面中5种超酷的伪类选择器:hover效果
想在自己的网站中应用超酷的hover效果吗?也许你可以从如下的这些实例中获得一些灵感,如果你喜欢这些效果,也可以直接拷贝代码并应用到你的站点. 给平淡的站点带来活力 hover效果能给网页增加一些动态 ...
- sublime中使用markdown并实时编辑
1.需求 想在sublime中编辑.md文件 2.步骤 找到菜单栏: 快捷键,shift + command + p,选择 Package Control:Install Package, 没有找到P ...
- 使用iframe引入公共模块
新建一个公共文件head.html <!DOCTYPE html><html lang="en"><head> <meta charset ...
- 分分钟钟学会Python - 模块
目录 模块 1 模块基础知识 2 random 返回随机生成的一个实数 3 hashlib 摘要算法模块 Hmac算法 4 time /datetime 时间模块 5 getpass 密码不显示(只能 ...
- python练习——小程序
1.打印0-10(while/for) count = 0 while count < 11: print(count) count += 1 for i in range(11): print ...
- NGINX模块(二)
[Nginx标准HTTP模块] 一.HTTP核心模块 指令1:alias 语法:alias file-path|directory-path; 默认值:no 使用字段:location 说明:这个指令 ...
- Java学习之并发多线程理解
1.线程简介: 世间万物会同时完成很多工作,如人体同时进行呼吸.血液循环.思考问题等活动,用户既可以使用计算机听歌也可以使用它打印文件,而这些活动完全可以同时进行,这种思想在Java中称为并发,而将并 ...
- python的unittest单元测试框架断言整理汇总
自动化脚本最重要的是断言,正确设置断言以后才能帮助我们判断测试用例执行结果. 一.先说说unittest常用的断言吧 常用的就以下几个,网上一搜一大堆.python版本2.7以上都可以调用了. 断言语 ...