Java 正则表达式的基本语法

来源:互联网 发布:如何查淘宝历史价格 编辑:程序博客网 时间:2024/05/06 11:04
public static String tempttStr="How old are you! I'm fourty, you look so young!"+"At age twenty-two, He graduated from beijing university!";public static void split(String regex){System.out.println(Arrays.toString(tempttStr.split(regex)));}public static void main(String args[]){String number="07134fdgsdfdg822057";boolean isPhone=RegexUtils.isNumberOrZimu(number);String date="2003-05-23";String str="\\d{4}-\\d{2}-\\d{2}";Pattern p=Pattern.compile(str);Matcher m=p.matcher(date);if(m.matches()){System.out.println("匹配日期正确");}else{System.out.println("匹配日期错误");}System.out.println("-1234".matches("-?\\d+"));//匹配正确 true: -?表示可能是负数,\\d表示单个的整数,+表示多个System.out.println("+3242349".matches("(-|\\+)?\\d+"));//+在正则表达式中有特殊的意义:可能多个的意思,当用作正号时需要转义\\可能是正或者负的多个整数。split(" ");//[How, old, are, you!, I'm, fourty,, you, look, so, young!At, age, twenty-two,, He, graduated, from, beijing, university!]split("\\W+");//[How, old,, are, you, I, m, fourty, you, look, so, young, At, age, twenty, two, He, graduated, from, beijing, university]//W表示非单词字符,w表示的是一个单词字符split("n\\w+");//[How old are you! I'm fourty, you look so you, !At age twe, -two, He graduated from beiji,  u, !]//表示字母n后面的一个或者多个单词字符。//字符类:    //.   ---->>任意字符//[abc] 包含a,b和c的任意字符(和a|b|c作用相同);//[^abc] 除了a,b和c之外的任意字符(否定);//[a-zA-Z]从a到z或者从A到Z的任意字符(范围);//[abc[hij]]任意a,b,c,h,i和j字符与(a|b|c|h|i|j作用相同)(合并);// \s空白符(空格,tab,换行,换页和回车); // \S非空白符([^\s]);// \d数字[0-9];// \D非数字[^0-9];// \w词字符[a-zA-Z0-9];// \W非词字符[^a-zA-Z0-9];//逻辑操作符// XY Y跟在X后面//X|Y X或Y//(X)捕获组(capturing group)。可以在表达式中用\i引用第i个捕获组//边界匹配符//^一行的起始//$一行的结束//\b词的边界// \B非词的边界//\G前一个匹配的结束for(String pattern:new String[]{"Rudolph","[rR]udolph","[rR][aeiou][a-z]ol.*","R.*"}){System.out.println("Rudolph".matches(pattern));// true,true,true,true;}// 贪婪型                         勉强型                     占有型                         如何匹配//   X?             X??          X?+          一个或者零个X//   X*             X*?          X*+          零个或者多个X//   X+             X+?          X++          一个或者多个X//   X{n}            X{n}?        X{n}+        恰好n个X//   X{n,}            X{n,}?      X{n,}+       至少n次X//   X{n,m}           X{n,m}?     X{n,m}+      X至少n次,但是不超过m次String temp1[]=new String[]{"Java","\\Breg.*","n.w\\s+h(a|i)s","s?","s*","s+","s{4}","s{1}.","s{0,3}"};String temp2="Java now has regular expressions";for(String temp1str:temp1){System.out.println("--"+temp2.matches(temp1str));//为何都不匹配}}