Pattern和Matcher的介绍:

Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式宇符串必须先被编译为Pattern对象,然后再用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在 Matcher 对象中 多个 Matcher 对象可共享同 Pattern 对象

Matcher 类提供了如下多个常用方法

  • find(): 尝试去匹配满足正则表达式的子字符串,如果匹配成功返回true,否则false
  • group(): 返回上一次与Pattern匹配的子串
  • start(): 返回上一次与Pattern匹配的子串在目标字符串中的开始位置
  • end(): 返回上一次与Pattern匹配的子串在目标字符串中的结束位置
  • lookingAt(): 返回目标字符串前面部分与 Pattern是否匹配
  • matches(): 返回整个目标字符串与 Pattern 是否匹配
  • reset(): 将现有的Matcher对象应用于一个新的字符序列
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* @ClassName PatternMatchExample
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/14.
*/
public class PatternMatchExample {
public static void main(String[] args) {
//匹配手机号的正则示例
Pattern pattern = Pattern.compile("1[34785]\\d{9}");
String string = "a的电话号是13212312123,b的电话是13332141234";
Matcher matcher = pattern.matcher(string);
// System.out.println(matcher.find()); //find找是否有匹配的子串
// System.out.println(matcher.group()); //必须find()后才能group找到,或者整个字符串完全匹配才行
while (matcher.find()){
System.out.println(matcher.group() + " 匹配的起始下标:"+ matcher.start() + " 匹配的结束下标:" + matcher.end());
}
System.out.println(matcher.matches()); //false整个字符串完全匹配才行
System.out.println(matcher.lookingAt()); //false 从字符串开头开始匹配
Pattern pattern1 = Pattern.compile(".{6}1[34785]\\d{9}.*");
Matcher matcher1 = pattern1.matcher(string);
System.out.println(matcher1.matches()); //true 整个字符串完全匹配
}
}

java 数据类型String 【正则表达式】匹配工具 Pattern和Matcher的更多相关文章

  1. java中使用正则表达式匹配字符串

    在Java中使用正则表达式去匹配相应的字符串: String importFileRole = "(import)\\s*[a-zA-Z0-9_<>.]+\\;";// ...

  2. java.util.regex包下的Pattern和Matcher详解(正则匹配)

    java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本文时,打开java API文档,当介绍到哪个方法时,查看java API中的方法说明,效果 ...

  3. Java算法练习——正则表达式匹配

    题目链接 题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要 ...

  4. java 数据类型String 【正则表达式】匹配

    1,什么是正则表达式 正则表达式是用来处理字符串的,其实正则表达式是非常复杂的,专门去系统学习需要花很长的时间,我们课程主要就是把常用的基础的给大家讲解. 正则表达式可以用来干什么: (1),匹配字符 ...

  5. java常用的正则表达式的工具类

    import com.google.common.base.Strings; import java.util.regex.Matcher;import java.util.regex.Pattern ...

  6. 测试工具之Match Tracer(正则表达式匹配工具)

    这个工具完全界面化,非常好用,如果对自己写的正则表达式不够确定,可以使用这个软件来试水一下 从下面网址可以下载: http://www.regexlab.com/zh/mtracer/download ...

  7. Java中输出正则表达式匹配到的内容

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class A { public static void ...

  8. java 从String中匹配数字,并提取数字

    方法如下: private List<FieldList> GetTmpFieldsList(List<String> FieldsList,String tmptableNa ...

  9. java 中 正则 正则表达式 匹配 url

    不多说 [http|https]+[://]+[0-9A-Za-z:/[-]_#[?][=][.][&]]* 这个就是匹配 网络上的网址 又称 url . 最起码 绝大部分的taobao ur ...

随机推荐

  1. SQL 跨实例操作

    SQL 跨实例操作 我使用的是 OpenDataSource 函数,假设你要在其他机器上访问 192.168.0.1 上的数据库: SELECT A.[Name], B.[SkillName], B. ...

  2. 【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中

    问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure A ...

  3. Codeforces 1236F - Alice and the Cactus(期望+分类讨论)

    Codeforces 题面传送门 & 洛谷题面传送门 期望好题. 首先拆方差: \[\begin{aligned} &E((x-E(x))^2)\\ =&E(x^2)-2E(x ...

  4. Codeforces 627E - Orchestra(双向链表,思维题)

    Codeforces 题目传送门 & 洛谷题目传送门 下设 \(n,m\) 同阶. 首先有一个傻子都会的暴力做法,枚举矩形的上.下边界 \(l,r\),考虑集合多重集 \(S=\{y|x\in ...

  5. mVISTA 多序列比对叶绿体基因组

    mVISTA可对2个或者多个DNA序列进行比较,可以对比对结果进行可视化. 详情请大力戳这里 0 输入文件说明 mVISTA 需要输入的文件有如下几类 必须文件 邮箱 fasta格式序列文件(或者GE ...

  6. 【R】调整ggplot图例大小

    图例太多时,会挤压正图,显得正图展示区域很小,这时有必要缩小图例. ################# # 减小ggplot图例 ################# library(ggplot2) ...

  7. Go知识点大纲

    目录 1. 基本介绍 2. 安装及配置 3. 变量 4. 常量 5. 数据类型 5.1 numeric(数字) 5.2 string(字符串) 5.3 array(数组) 5.4 slice(切片) ...

  8. 巩固javaweb第十五天

    巩固内容: 单选按钮: 在注册功能中,用户选择学历使用的是单选按钮,并且是多个单选按钮,每个选项对 应一个单选按钮,用户只能选择其中一个,这多个单选按钮的格式相同.如果用户要输入 的信息只有少数几种可 ...

  9. A Child's History of England.35

    The other two clung to the yard for some hours. At length the young noble said faintly, 'I am exhaus ...

  10. day07 Linux配置修改

    day07 Linux配置修改 昨日回顾 1.系统目录 /etc :系统配置目录 /bin-> /usr/bin :保存常用命令的目录 /root :超级管理员目录 /home :普通管理员目录 ...