正则表达式

来源:互联网 发布:查手机mac地址 编辑:程序博客网 时间:2024/06/06 15:41

  1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

    2.用途:

  • 字符串匹配(字符匹配)
  • 字符串查找
  • 字符串替换
  • 字符串分割

    例如:

  • 从网页中揪出email地址
  • IP地址是否正确
  • 从网页中揪出链接

    3.java中处理正则表达式的类:

  • java.lang.String
  • java.util.regex.Pattern:模式类:字符串要被匹配的这么一个模式,该模式本身已经被编译过,使用的话效率要高很多。
  • java.util.regex.Matcher:匹配类:这个模式匹配某个字符串所产生的结果,这个结果可能会有很多个。

       4. 各字符含义

  .              任何字符(1个)

    ?               ?前面的字符匹配0或者1次

  *                                *前面的字符匹配0或者多次

     +                             +前面的字符匹配1或者多次

 a?             a一次或一次也没有

 a*             a零次或多次

 a+            a一次或多次

 a{n}      a恰好 n 次

 a{n,}      a至少n次 

 a{n,m}   a至少n次,但是不超过m次

      

  1、java.util.regex 包主要包括以下三个类:

  • Pattern 类:

    pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

  • Matcher 类:

    Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

  • PatternSyntaxException:

    PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

  • 2、matches()用法

  • java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。
    都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")

    String类的方法:
    boolean b = "abc".matches("[a-z]{3}"
    System.out.println(b);

    Pattern类中的方法:
    boolean b = Pattern.matches("[a-z]{3}","abc");
    System.out.println(b);

    Matcher类中的方法:
    Pattern p = Pattern.compile("[a-z]{3}");
    Matcher m = p.matcher("acc");
    boolean b =m.matches()
    System.out.println(b);