站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        JAVA中正則表達式匹配,替換,查找,切割的方法

        正則表達式的查找;主要是用到String類中的split();

        String str;

        str.split();方法中傳入按照什么規(guī)則截取,返回一個String數(shù)組

        常見的截取規(guī)則:

        str.split(“\.”)按照.來截取

        str.split(” “)按照空格截取

        str.split(“cc+”)按照c字符來截取,2個c或以上

        str.split((1)\.+)按照字符串中含有2個字符或以上的地方截取(1)表示分組為1

        截取的例子;

        按照分組截取;截取的位置在兩個或兩個以上的地方

          String str = "publicstaticccvoidddmain";      //對表達式進分組重用      String ragex1="(.)\1+";      String[] ss = str.split(ragex1);     for(String st:ss){     System.out.println(st);      }  //按照兩個cc+來截取  String ragex = " ";     //切割      String strs = "publicstaticccvoidddmain";     String ragexs = "cc+";    String[] s = strs.split(ragexs);    for(String SSSS :s){    System.out.println(SSSS);    }    System.out.println("=-=========");

        正則表達式中的替換;

        語法定義規(guī)則;

          String s =str.replaceAll(ragex, newstr);

        字符串中的替換是replace();

        將4個或4個以上的連續(xù)的數(shù)字替換成*

          // 替換     String str="wei232123jin234";     String ragex = "\d{4,}";     String newstr = "*";     String s =str.replaceAll(ragex, newstr);     System.out.println(s);

        將重復的字符串換成一個*

          String str ="wwweiei222222jjjiiinnn1232";     String ragex ="(.)\1+";     String newStr ="*";     String s = str.replaceAll(ragex, newStr);     System.out.println(s);

        將 我…我…要..要.吃…吃…飯 換成 我要吃飯

          String str = "我...我...要..要.吃...吃...飯";    String regex = "\.+";    String newStr = "";    str=test(str, regex, newStr);    regex = "(.)\1+";    newStr = "$1";    test(str, regex, newStr);  public static String test(String str, String regex, String newStr) {    String str2 = str.replaceAll(regex, newStr);    System.out.println(str2);    return str2;   }

        正則表達式的字符串的獲取

        1,根據(jù)定義的正則表達式創(chuàng)建Pattern對象

        2,使用Pattern對象類匹配

        3,判斷是否為true

        4,加入到組

        例子;

          String str = "public static void main(String[] args)"      + " public static void main(String[] args)public static void main(String[] args)";   String ragex = "\b[a-zA-Z]{4,5}\b";   Pattern p =Pattern.compile(ragex);   Matcher m = p.matcher(str);      while(m.find()){      String s = m.group();      System.out.println(s);      }

        作業(yè):

        1,獲取<html>user</user>中的user

          String str ="<html>user</html>";  String regex = "<html>|</html>";    String newStr = "";   String str2 = str.replaceAll(regex, newStr);  System.out.println(str2);

        2,獲取dhfjksaduirfn 11@qq.com dsjhkfa wang@163.com wokaz中的郵箱號碼

          String regex = " ";   String[] strs=str.split(regex);   for(String str2:strs){   String ragexDemo = "[a-zA-Z0-9]([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*"   + "@([a-zA-Z0-9]+)\.[a-zA-Z]+\.?[a-zA-Z]{0,2}";  Pattern p = Pattern.compile(ragexDemo);  Matcher m = p.matcher(str2);  while(m.find()){  System.out.println(m.group());    }   }

        示例代碼:

          import java.util.ArrayList;  import java.util.regex.Matcher;  import java.util.regex.Pattern;    public class test {    public static void main(String[] args) {      getStrings(); //用正則表達式獲取指定字符串內(nèi)容中的指定內(nèi)容      System.out.println("********************");      replace(); //用正則表達式替換字符串內(nèi)容      System.out.println("********************");      strSplit(); //使用正則表達式切割字符串      System.out.println("********************");      strMatch(); //字符串匹配    }      private static void strMatch() {      String phone = "13539770000";      //檢查phone是否是合格的手機號(標準:1開頭,第二位為3,5,8,后9位為任意數(shù)字)      System.out.println(phone + ":" + phone.matches("1[358][0-9]{9,9}")); //true              String str = "abcd12345efghijklmn";      //檢查str中間是否包含12345      System.out.println(str + ":" + str.matches("\w+12345\w+")); //true      System.out.println(str + ":" + str.matches("\w+123456\w+")); //false    }      private static void strSplit() {      String str = "asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg";      String[] strs = str.split("\.");      for (String s : strs){        System.out.println(s);      }        }      private static void getStrings() {      String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";      Pattern p = Pattern.compile("qq(.*?)qq");      Matcher m = p.matcher(str);      ArrayList<String> strs = new ArrayList<String>();      while (m.find()) {        strs.add(m.group(1));            }       for (String s : strs){        System.out.println(s);      }        }      private static void replace() {      String str = "asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf";      //將字符串中的.替換成_,因為.是特殊字符,所以要用.表達,又因為是特殊字符,所以要用\.來表達.      str = str.replaceAll("\.", "_");      System.out.println(str);        }  }

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 精品多毛少妇人妻AV免费久久| 人妻一区二区三区无码精品一区| 久久精品国产99久久丝袜| 99久久99久久久精品齐齐| 欧美精品整片300页| 成人国产精品秘 果冻传媒在线 | www.久久精品| 亚洲精品无码久久一线| 精品人妻系列无码人妻免费视频| 欧美日韩精品乱国产538| 国产精品无码av在线播放| 亚洲色精品88色婷婷七月丁香| 九色精品视频在线观看| 国产精品99久久久久久猫咪| 日本精品中文字幕| 麻豆精品成人免费国产片| 国产精品视频a播放| 国产成人精品高清在线观看93| 日韩精品无码熟人妻视频| 中文字幕在线亚洲精品| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产精品国产亚洲精品看不卡| 亚洲一区二区三区在线观看精品中文| 久久精品人妻一区二区三区| 国产乱码精品一区二区三| 国产精品99久久精品爆乳| 北岛玲日韩精品一区二区三区| 四虎国产精品永久一区| 97精品人妻一区二区三区香蕉| 日本久久久精品中文字幕| 久久亚洲国产欧洲精品一| 青草青草久热精品视频在线网站 | 四虎影院国产精品| 亚洲A∨精品一区二区三区| 亚洲精品无码成人片在线观看| 亚洲国产成人精品女人久久久| 一区二区三区精品高清视频免费在线播放| 亚洲精品第一国产综合境外资源| 最新在线精品国自av| 久久er99热精品一区二区| 国产精品禁18久久久夂久|