java中使用正则表达式

本文所介绍的只是如何在java中使用正宗表达式。通过一个具体的例子来说明。至于什么是正宗表达式,如何使用,将在别的地方进行介绍。

首先,先介绍几个文件Pattern(模板、模式)和Matcher(匹配器)。

①public final class java.util.regex.Pattern是正则表达式编译后的表达法。

有趣的是,Pattern类是final类,而且它的构造器是private。也许有人告诉你一些设计模式的东西,或者你自己查有关资料。这里的结论是:Pattern类不能被继承,我们不能通过new创建Pattern类的对象。

因此在Pattern类中,提供了2个重载的静态方法,其返回值是Pattern对象(的引用)。

static Patterncompile(String regex)
          将给定的正则表达式编译到模式中。
static Patterncompile(String regex, int flags)
          将给定的正则表达式编译到具有给定标志的模式中。

如:

public static Pattern compile(String regex) {

    return new Pattern(regex, 0);

}

②p.matcher(str)表示以用模板p去生成一个字符串str的匹配器,它的返回值是一个Matcher类的引用,为什么要这个东西呢?按照自然的想法,返回一个boolean值不行吗?

我们可以简单的使用如下方法:

boolean result=Pattern.compile(regEx).matcher(str).find();

其实是三个语句合并的无句柄方式。无句柄常常不是好方式。后面再学习Matcher类吧。

简单的一些信息介绍完了,下面就写一个简单的例子。

目的:有一个String,如何查询其中是否有y和f字符?

代码:

 private static void test(){
  String str="This is a sample";
  String regEx="a|f"; //表示a或f
  Pattern p=Pattern.compile(regEx);
  Matcher m=p.matcher(str);
  boolean result=m.find();
  System.out.println(result);
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值