吾爱乐享
个人学习网站

java之学习正则表达式的获取功能及经典调用排序

结果示意图

A:Pattern和Matcher的概述

* 指定为字符串的正则表达式
* 必须首先被编译为此类的实例。
* 然后,可将得到的模式用于创建 Matcher 对象,
* 依照正则表达式,该对象可以与任意字符序列匹配。
* 执行匹配所涉及的所有状态都驻留在匹配器中,
* 所以多个匹配器可以共享同一模式。
B:模式和匹配器的典型调用顺序

* 通过JDK提供的API,查看Pattern类的说明
* 典型的调用顺序是
* Pattern p = Pattern.compile(“a*b”);
* Matcher m = p.matcher(“aaaaab”);
* boolean b = m.matches();

package com.ifenx8.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Demo_Pattern {

/**

* * A:Pattern和Matcher的概述

* 指定为字符串的正则表达式

* 必须首先被编译为此类的实例。

* 然后,可将得到的模式用于创建 Matcher 对象,

* 依照正则表达式,该对象可以与任意字符序列匹配。

* 执行匹配所涉及的所有状态都驻留在匹配器中,

* 所以多个匹配器可以共享同一模式。

* B:模式和匹配器的典型调用顺序

* 通过JDK提供的API,查看Pattern类的说明

* 典型的调用顺序是

* Pattern p = Pattern.compile(“a*b”);

* Matcher m = p.matcher(“aaaaab”);

* boolean b = m.matches();

*/

public static void main(String[] args) {

demo1();

/** A:正则表达式的获取功能

* Pattern和Matcher的结合使用

* B:案例演示

* 需求:把一个字符串中的手机号码获取出来

* */

String s = “我的手机号是18000000000,另外一个手机号是13100000000,还有一个手机号码是15500000000,我的手机号码多吧!”;

String regex = “1[3578]\d{9}”;//手机号码的正则表达式

Pattern p = Pattern.compile(regex);//获取正则表达式

Matcher m = p.matcher(s);//匹配正则表达式

/*

//重复调用不利于代码优化,借助循环更方便

boolean b = m.find();//尝试查找与该模式下匹配的输入序列的下一个子序列

System.out.println(m.group());//输出匹配的子字符序列,

boolean b1 = m.find();//每次匹配成功 就匹配下一个字符,直到匹配完

System.out.println(m.group());//输出匹配的子字符序列,

boolean b2 = m.find();//尝试查找与该模式下匹配的输入序列的下一个子序列

System.out.println(m.group());//输出匹配的子字符序列,

*/

//利用while循环解决

while(m.find()){

System.out.println(m.group());

}

}

public static void demo1() {

//典型的调用顺序

Pattern p = Pattern.compile(“a*b”);//获取正则表达式

Matcher m = p.matcher(“aaaaab”);//创建指定输入与此模式的匹配器

boolean b = m.matches();//指定的输入与正在表达式是否匹配

System.out.println(b);

}

}

赞(0) 打赏
未经允许不得转载:吾爱乐享 » java之学习正则表达式的获取功能及经典调用排序

评论 1

评论前必须登录!

 

  1. #-49

    gdfgds

    唯我独尊7年前 (2017-09-11)

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏