Java深入-Javaの正規表現PatternとMatch er

3641 ワード

PatternとMatch
java.util.regexは、正規表現で作成されたモードで文字列をマッチングさせるためのクラスバッグです。二つの種類があります。PatternとMatchです。
Pattern:一つのPatternは正規表現をコンパイルした後の表現モードです。Match:一つのMatchオブジェクトは状態マシンであり、それはPatternオブジェクトによってマッチングモードとして文字列にマッチング検査を展開します。
Pattern類
常用方法:
static Pattern comple(String regex)     与えられた正規表現をコンパイルして、Patternクラスに与えます。
static Pattern comple(String regex,int flags)     flagsパラメータの指定には、オプションのflagsパラメータが含まれます。CASE INSENSITIVE、MLTILINE、DOTALL、UNCODE CASE、CANON E
int flags()   現在のPatternの整合flagsパラメータを返します。
Pattern.CANON_EQ,         "    (canonical decomposition)"         ,     。

Pattern.CASE_INSENSITIVE(?i)      ,             US-ASCII   。                  。

Pattern.COMMENTS(?x)      ,      (       )    (        "\\s",          ,tab,    )。

Pattern.DOTALL(?s)      ,   '.'        ,          。      ,   '.'        。

Pattern.MULTILINE(?m)      ,'^' '$'            。
  ,'^'          ,'$'         。     ,                   。

Pattern.UNICODE_CASE(?u)      ,       CASE_INSENSITIVE  ,
     Unicode             。     ,             US-ASCII   。

Pattern.UNIX_LINES(?d)      ,  '
' , '.','^', '$' 。
Match matcher(Char Sequence input)    指定された名前のマッチオブジェクトを生成します。
        Pattern p = Pattern.compile("《(.*)》");
        Matcher m = p.matcher("《  》          ");
        while (m.find()) {
            System.out.println(m.group(1));
        }
String regex,CharSequence input
String[]split(CharSequence input)  ターゲット文字列をPatternに含まれる正規表現に基づいてモデルに分割します。
String[]split(CharSequence input,int limit)   作用は同じで、パラメータlimitを増やす目的は分割の段数を指定することです。
        Pattern p = Pattern.compile("\\|");
        String[] arr = p.split("woshishen|sadsadsa");
        System.out.println(arr[0] + "----" + arr[1]);
マッチ類
Match apendReplacment(StringBuffer sb,String replace ment)       現在のサブストリングを指定の文字列に置き換え、置換後のサブストリングと前回のサブストリングの後の文字列を一つのスティンBufferオブジェクトに追加します。StringBuffer apendTail(StringBuffer sb)      最後に作業にマッチした残りの文字列をStringBufferオブジェクトに追加します。int end()     現在のマッチするサブストリングの最後の文字の元のターゲット文字列内の索引の位置を返します。
int end(int group)    マッチングモードで指定したグループにマッチするサブストリングの最後の文字の位置を返します。book find()    ターゲット文字列から次のサブストリングを探してみます。book find(int start)   Matchオブジェクトをリセットし、指定された位置から次のマッチするサブストリングを検索してみます。String group()   現在の検索を返して得られたグループに一致するすべてのサブストリングコンテンツString group(int group)   現在の検索を返して得られた、指定されたグループにマッチするサブシリアルコンテンツint groupCount()   現在の検索で得られたマッチンググループの数を返します。bootlean lookingAt()   ターゲット文字列がマッチするサブストリングで始まるかどうかを検出します。ブックマッチ()   ターゲット文字全体に対して、マッチ検出を展開してみます。つまりターゲット文字列全体が完全に一致している場合のみ、真の値を返します。Pattern pattern()    Matchオブジェクトの既存のマッチングモード、すなわち対応するPatternオブジェクトを返します。String replace All(String replace ment)   ターゲット文字列の中の既存のパターンにマッチするサブストリングをすべて指定された文字列に置き換えます。String replace First(String replace ment)   ターゲット文字列の最初の部分が既存のパターンにマッチする部分列を指定された文字列に置き換えます。マッチレス   このマッチのオブジェクトをリセットします。Match reet(CharSequence input)   Matchオブジェクトをリセットし、新しいターゲット文字列を指定します。int start()    現在の検索で得られたサブストリングの開始文字の元のターゲット文字列の位置を返します。int start(int group)   現在の検索で得られた、指定されたグループにマッチするサブストリングの最初の文字の元のターゲット文字列の位置を返します。
        Pattern p = Pattern.compile("( (.+) )");
        Matcher m = p.matcher("       1");
        while (m.find()) {
            System.out.println(m.start()); //                          。
            System.out.println(m.end()); //                           。
            System.out.println(m.group(2)); //                       
        }