正则表达式的使用

一旦在程序中定义了正则表达式之后,就可以使用PatternMatcher来使用正则表达式。

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

// 将一个表达式编译成Pattern对象

Pattern p = Pattern.compile("a*b");

// 调用Pattern对象matcher方法匹配字符串, 返回Matcher对象

Matcher m = p.matcher("aaaaab");

// 根据需求调用Matcher方法

boolean b = m.matches();

System.out.println(b);

// 如果某个正则表达式仅需使用一次,可以直接使用Pattern类的静态matches方法

// 每次使用都需要重新编译得到Pattern对象,效率不高

boolean b1 = Pattern.matches("a*b", "aaaaab");

Matcher类提供的常用方法。

find():返回目标字符串中是否包含与 Pattern 匹配的子串

group():返回上一次与Pattern匹配的子串, 一定要先调用find()才能调用group()

start():返回上一次与Pattern 匹配的子串在目标字符串中的开始位置

end():返回上一次与Pattern 匹配的子串在目标字符串中的结束位置加1

lookingAt():返回目标字符串前面部分与Pattern是否匹配

matches():返回整个目标字符串与 Pattern是否匹配

reset():将现有的 Matcher对象应用于一个新的字符序列

replaceAll():将匹配的所有子串替换为目标字符串, 和字符串replaceAll()功能是一样

replaceFirst():将匹配的第一个子串替换为目标字符串, 和字符串replaceFirst()功能是一样

matches() 和 lookingAt()方法有点相似,只是matches()方法要求整个字符串和Pattern 完全匹配时返回true,而 lookingAt()只要字符串以Pattern开头就会返回true。

reset()方法可将现有的Matcher对象应用于新的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值