正则表达式的学习3

Pattern类和Matcher类

概述:
Pattern类属于java.util.regex包中的一个类。

java.util.regex.Pattern;
public final class Pattern
extends Object
implements Serializable

Matcher类也是属于java.util.regex包中的一个类。

java.util.regex.Matcher;
public final class Matcher
extneds Object
implements MatchResult

Pattern和Matcher配合使用:

模式和匹配器的典型调用顺序:
Pattern p=Pattern.compile(“a*b”);
Matcher m=p.matcher(“aaaaaaab”);
boolean b=m.matches();

下面看一段代码来具体解释模式和匹配器的典型调用顺序:

package 正则表达式;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Demo8_Pattern {

 public static void main(String[] args) {
  // Pattern和Matcher的结合使用
  //模式和匹配器典型的调用顺序
  Pattern p=Pattern.compile("a*b");  //获取到正则表达式
  Matcher m=p.matcher("aaaaaab");    //获取匹配器
  boolean b=m.matches();             //看是否能匹配,匹配就返回true 
  
  System.out.println(b);             //true
  
  System.out.println("aaaaaab".matches("a*b"));  //完成了上述功能,与上面结果一样true  
 }
 
}

正则表达式的获取功能

Matcher类中的boolean find()方法:尝试查找与该模式匹配的输入序列的下一个子序列。String group():返回由以前匹配操作所匹配的输入子序列。

下面看一段代码示例:

package 正则表达式;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Demo8_Pattern {

 public static void main(String[] args) {
 
  // Pattern和Matcher的结合使用
  //需求:把一个字符串中的手机号码获取出来
  String s="我的手机号码是18988888888,我以前的手机号是19923333333,我还有一个手机号是18899898988";
  
  String regex="1[35789]\\d{9}";
  Pattern p=Pattern.compile(regex);  //获取到正则表达式
  Matcher m=p.matcher(s);            //获取匹配器
 
  //获取一个手机号码
  boolean b1=m.find();              
  System.out.println(b1);            //true
  String s1=m.group();               //要获取查找到的字符串,必须先获取即使用find()方法,否则,报错
  System.out.println(s1);            //18988888888
  
  /*
       获取字符串中所有的手机号码
           18988888888
           19923333333
           18899898988
   */
  while(m.find()) {
   System.out.println(m.group());
  }
  
 }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值