A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 公孙国禄 中级黑马   /  2016-3-27 00:13  /  617 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
* 正则表达式:用来匹配字符串的工具
* 需要两个字符串
* 1被判断的字符串
* 2表示规则的字符串
* 这里我们借助字符串类中使用正则的方法来介绍正则表达式
* public boolean matches(String regex)调用方法的字符串是否符合传入的规则
* 告知此字符串是否匹配给定的正则表达式。
             调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同:
        Pattern.matches(regex, str)
        参数:
        regex - 用来匹配此字符串的正则表达式
        返回:
        当且仅当此字符串匹配给定的正则表达式时,返回 true
        抛出:
        PatternSyntaxException - 如果正则表达式的语法无效
    规则在pattern类中
        并且真正的正则表达式对应的类就是pattern类
*/
public class Dome08Regex {
  public static void main(String[] args) {
        String s ="abc";
        System.out.println(s.matches("a.."));
}
}
打印结果为  true
S.matches(规则)。
比如吧String s ="abc";改成String s ="dbc";
那么打印的就是 false
而且规则的格式在java中也有定义

public final class Pattern
extends Object
implements Serializable

正则表达式的编译表示形式。
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
因此,典型的调用顺序是
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。语句
boolean b = Pattern.matches("a*b", "aaaaab");
等效于上面的三个语句,尽管对于重复的匹配而言它效率不高,因为它不允许重用已编译的模式。
此类的实例是不可变的,可供多个并发线程安全使用。Matcher 类的实例用于此目的则不安全。

评分

参与人数 1黑马币 +20 收起 理由
zhouanqi + 20

查看全部评分

3 个回复

正序浏览
phoenix1992 来自手机 中级黑马 2016-3-27 22:25:03
板凳
顶。。。
回复 使用道具 举报
正则表达式有点繁杂,记不多
回复 使用道具 举报
大神~问个问题吧
一个叠词
高高兴兴
然后其正则表达式为
(.)\\1(.)\\2
请问这个正则表达式是怎么解释的呢?能不能给说下,小白求教育~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马