a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:05:01
字體:
來源:轉載
供稿:網友

本文主要給大家介紹java正則表達式匹配,替換,查找,切割的方法,查找是用string類中的split(),字符串中的替換是replace(),感興趣的朋友一起來學習吧

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

String str;

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

常見的截取規則:

str.split("//.")按照.來截取

str.split(" ")按照空格截取

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

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

截取的例子;

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

 

 
  1. String str = "publicstaticccvoidddmain";  
  2. //對表達式進分組重用  
  3. String ragex1="(.)//1+";  
  4. String[] ss = str.split(ragex1); 
  5. for(String st:ss){ 
  6. System.out.println(st);  
  7. //按照兩個cc+來截取 
  8. String ragex = " ";  
  9. //切割  
  10. String strs = "publicstaticccvoidddmain";  
  11. String ragexs = "cc+"
  12. String[] s = strs.split(ragexs); 
  13. for(String SSSS :s){ 
  14. System.out.println(SSSS); 
  15. System.out.println("=-========="); 

正則表達式中的替換;

語法定義規則;

 

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

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

將4個或4個以上的連續的數字替換成*

 

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

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

 

 
  1. String str ="wwweiei222222jjjiiinnn1232"
  2. String ragex ="(.)//1+"
  3. String newStr ="*"
  4. String s = str.replaceAll(ragex, newStr); 
  5. System.out.println(s); 

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

 

 
  1. String str = "我...我...要..要.吃...吃...飯"
  2. String regex = "//.+"
  3. String newStr = ""
  4. str=test(str, regex, newStr); 
  5. regex = "(.)//1+"
  6. newStr = "$1"
  7. test(str, regex, newStr); 
  8. public static String test(String str, String regex, String newStr) { 
  9. String str2 = str.replaceAll(regex, newStr); 
  10. System.out.println(str2); 
  11. return str2; 

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

1,根據定義的正則表達式創建Pattern對象

2,使用Pattern對象類匹配

3,判斷是否為true

4,加入到組

例子;

 

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

作業:

1,獲取

user中的user

 

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

2,獲取dhfjksaduirfn11@qq.comdsjhkfawang@163.comwokaz中的郵箱號碼

 

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

示例代碼:

 

 
  1. import java.util.ArrayList; 
  2. import java.util.regex.Matcher; 
  3. import java.util.regex.Pattern; 
  4.  
  5. public class test { 
  6. public static void main(String[] args) { 
  7. getStrings(); //用正則表達式獲取指定字符串內容中的指定內容 
  8. System.out.println("********************"); 
  9. replace(); //用正則表達式替換字符串內容 
  10. System.out.println("********************"); 
  11. strSplit(); //使用正則表達式切割字符串 
  12. System.out.println("********************"); 
  13. strMatch(); //字符串匹配 
  14.  
  15. private static void strMatch() { 
  16. String phone = "13539770000"
  17. //檢查phone是否是合格的手機號(標準:1開頭,第二位為3,5,8,后9位為任意數字) 
  18. System.out.println(phone + ":" + phone.matches("1[358][0-9]{9,9}")); //true  
  19.  
  20. String str = "abcd12345efghijklmn"
  21. //檢查str中間是否包含12345 
  22. System.out.println(str + ":" + str.matches("//w+12345//w+")); //true 
  23. System.out.println(str + ":" + str.matches("//w+123456//w+")); //false 
  24.  
  25. private static void strSplit() { 
  26. String str = "asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg"
  27. String[] strs = str.split("//."); 
  28. for (String s : strs){ 
  29. System.out.println(s); 
  30. }  
  31.  
  32. private static void getStrings() { 
  33. String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf"
  34. Pattern p = Pattern.compile("qq(.*?)qq"); 
  35. Matcher m = p.matcher(str); 
  36. ArrayList<String> strs = new ArrayList<String>(); 
  37. while (m.find()) { 
  38. strs.add(m.group(1));  
  39. }  
  40. for (String s : strs){ 
  41. System.out.println(s); 
  42. }  
  43.  
  44. private static void replace() { 
  45. String str = "asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf"
  46. //將字符串中的.替換成_,因為.是特殊字符,所以要用/.表達,又因為/是特殊字符,所以要用//.來表達. 
  47. str = str.replaceAll("//.""_"); 
  48. System.out.println(str);  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美www.| 91人人人| 男女羞羞视频网站 | 一区二区在线 | 日韩激情网 | 蜜桃久久久 | 少妇av片 | 欧美日本一区 | 天堂新版8中文在线8 | 一区二区免费在线 | 超碰国产在线 | 免费a级作爱片免费观看欧洲 | 一级免费黄色免费片 | 欧美国产高清 | 黄色一级免费电影 | 超碰国产在线 | 天堂久久精品 | 一级毛片视频 | 日韩国产欧美一区二区 | 精品久久久久久久久久久久久久 | 人善交video另类hd国产片 | 一区二区三区精品 | 91在线视频播放 | 手机看片福利 | 精品久久香蕉国产线看观看亚洲 | 午夜专区| 欧美日韩免费在线 | 欧美一区在线观看视频 | av中文字幕在线播放 | 91爱爱视频| av看片| 好看的一级毛片 | 国产精品久久久久9999赢消 | 国产一区二区精品在线 | 久久国产成人午夜av影院宅 | 日本一区二区在线 | 日本免费在线观看 | 国产精品一区免费观看 | 日韩精品视频免费专区在线播放 | 色av综合网| 久久国产精品一区 |