国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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);  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淅川县| 句容市| 高碑店市| 阜阳市| 沙河市| 当涂县| 韶关市| 青铜峡市| 绥德县| 商南县| 青铜峡市| 荆州市| 刚察县| 双峰县| 宜都市| 酉阳| 黑水县| 静海县| 中山市| 海城市| 英德市| 深水埗区| 洛宁县| 靖西县| 雷山县| 萨迦县| 台南市| 金昌市| 金川县| 九台市| 开平市| 肃宁县| 壶关县| 松潘县| 乐山市| 綦江县| 海安县| 郯城县| 射洪县| 礼泉县| 施甸县|