java之正则表达式菜鸟学习

java api对于正则的支持

java.util.regex 包下面
一个接口两个类,一个异常:
接口 
MatchResult

 
Matcher
public final class Matcher  extends Object implements MatchResult

通过解释 Patterncharacter sequence 执行匹配操作的引擎。

通过调用模式的 matcher 方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:

  • matches 方法尝试将整个输入序列与该模式匹配。

  • lookingAt 尝试将输入序列从头开始与该模式匹配。

  • find 方法扫描输入序列以查找与该模式匹配的下一个子序列。

每个方法都返回一个表示成功或失败的布尔值。通过查询匹配器的状态可以获取关于成功匹配的更多信息。

boolean matchers()
boolean lookingAt()
boolean find()
boolean find(int start)
Pattern
public final class Pattern  extends Object  implements Serializable 

实现Serializable 接口,可序列化。

正则表达式的编译表示形式。

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

因此,典型的调用顺序是

 Pattern p = Pattern.compile("a*b"); //指定为字符串的正则表达式必须首先被编译为此类的实例。该模式可以被共享。
 Matcher m = p. matcher("aaaaab");//参数为需要匹配的任意字符序列(CharSequence)
 boolean b = m.matchers();
CharSequence 接口lang包里的
从CharBuffer,String,StringBuffer,StringBulider类中抽象出了字符序列的一般化定义
interface CharSequence(){
    charAt(int i);
    length();
    subSequence(int start,int end);
    toString();
}

在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。语句

 boolean b = Pattern.matches("a*b", "aaaaab");
等效于上面的三个语句,尽管对于重复的匹配而言它效率不高,因为它不允许重用已编译的模式。

此类(Pattern)的实例是不可变的,可供多个并发线程安全使用。Matcher 类的实例用于此目的则不安全。

String类对于regex的支持

split()方法:
public String[] split( String regex)
public String[] split( String regex, int limit)//它允许你限制字符串分割的次数。
replace()方法:
  public String replaceFirst(String regex,String replacement)
public String replaceAll(String regex, String replacement)
                     
matches()方法
 
 
public boolean matches( String regex)
告知此字符串是否匹配给定的 正则表达式

调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同:

Pattern.matches( regex , str )

                      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值