JAvaにおける正規操作のまとめ

3729 ワード

http://www.cnblogs.com/nerxious/archive/2013/01/03/2842910.html
 
正規表現は文字列の処理効率がかなり高い
正規表現の使用については、自分の経験が多く、興味があれば関連書籍を参照してください.
ここでは主にjavaの正規操作方法について書きます
 
インスタンス1:一致
import java.util.Scanner;



class Demo {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        //    

        System.out.print("Please Enter:");

        String str = sc.nextLine();

        check(str);

    }



    private static void check(String str) {

        //      1-9,      0-9(   4-10  )

        String regex = "[1-9][0-9]{4,10}";

        

        /*

        //           a-z

        String regex = "[a-zA-Z]";

        //    ,      

        String regex = "\\d";

        //     

        String regex = "\\D";

        */

        

        if(str.matches(regex)) {

            System.out.println("    ");

        } else {

            System.out.println("    ");

        }

    }

}


ここでStringクラスのmatches()メソッドをマッチングに使用します.
java中的正则操作总结
 
例2:切断
import java.util.Scanner;



class Demo {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("Please Enter:");

        String str = sc.nextLine();

        split(str);

    }



    private static void split(String str) {

        //         

        String regex = " +";

        

        String[] arr = str.split(regex);

        

        for (String s : arr) {

            System.out.println(s);

        }

    }

}


ここでStringクラスのsplit()メソッドは、正規表現で切断し、String配列を返すために使用されます.
java中的正则操作总结
 
例3:置換
import java.util.Scanner;



class Demo {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("Please Enter:");

        String str = sc.nextLine();

        replace(str);

    }



    private static void replace(String str) {

        //    

        String regex = "(.)\\1+";

        String s = str.replaceAll(regex, "*");

        System.out.println(s);

    }

}


注意replaceAllには2つのパラメータがあります.1つは正則で、1つは置換文字です.
java中的正则操作总结