算法基础——2.4正则表达式初步

算法基础——2.4正则表达式初步_第1张图片算法基础——2.4正则表达式初步_第2张图片算法基础——2.4正则表达式初步_第3张图片

例一:

[java]  view plain copy
  1. /* 
  2.    串的处理中直接使用正则的API 
  3.    split 
  4.    match 
  5.    replaceAll 
  6. */  
  7.   
  8. public class T1  
  9. {  
  10.     public static void main(String[] args)  
  11.     {  
  12.         //把串中的表示日期的子串变换成另一种日期表达格式  
  13.         String s = "abc,kkk 2015-08-19 ttk";  
  14.         s = s.replaceAll("([0-9]{4})-([0-9]{2})-([0-9]{2})""$2/$3 $1年");  
  15.         System.out.println(s);  
  16.           
  17.         /* 
  18.         // 判断一个串,是否为Excel地址的表达格式 
  19.         String s = "A3"; 
  20.         System.out.println(s.matches("[A-F]{1,2}[0-9]{1,5}")); 
  21.         */  
  22.           
  23.         /*   
  24.         // 被一个或多个空格分割的字符串分离出来 
  25.         String s = "ab   xyz  kkk"; 
  26.          
  27.         //String[] ss = s.split(" {1,}"); 
  28.         String[] ss = s.split(" +"); 
  29.         for(int i=0; i 
  30.             System.out.println(ss[i]); 
  31.         } 
  32.         */  
  33.           
  34.     }  
  35. }  

例二;

方法一:

[java]  view plain copy
  1. /*第02讲-正则表达式初步_分散字符串 
  2. 请把下列字符串分散为数字和字符构成的串 
  3. String s1 = "abc1234xyz667kkmd764tttt"; 
  4.  
  5. 串由字母和数字间隔构成,要分离出所有的字母段和数字段,即: 
  6. abc 
  7. 1234 
  8. xyz 
  9. 667 
  10. kkmd 
  11. 764 
  12. tttt 
  13.  */  
  14.   
  15. public class C4 {  
  16.     public static void main(String[] args) {  
  17.         String s1 = "abc1234xyz667kkmd764tttt";  
  18.         String []s2 = s1.split("[0-9]{1,}");  
  19.         String []s3 = s1.split("[a-z]{1,}");  
  20.           
  21.         int i;  
  22.         for(i = 0; i < s2.length && i < s3.length; ++i)  
  23.         {  
  24.             if(!s2[i].equals(""))  
  25.                 System.out.println(s2[i]);  
  26.             if(!s3[i].equals(""))  
  27.                 System.out.println(i+s3[i]);  
  28.         }  
  29.           
  30.         if(i == s2.length){//s2已经输出完,继续输出s3  
  31.             for(int j = i; j < s3.length; ++j){  
  32.                 if(!s3[i].equals(""))  
  33.                     System.out.println(i+s3[i]);  
  34.             }  
  35.         }  
  36.         else{//s3已经输出完,继续输出s2  
  37.             for(int j = i; j < s2.length; ++j){  
  38.                 if(!s2[i].equals(""))  
  39.                     System.out.println(i+s2[i]);  
  40.             }  
  41.               
  42.         }  
  43.     }  
  44.   
  45. }  

方法二:

[java]  view plain copy
  1. public class FenLi  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.         String s = "abc1234xyz667kkmd764tttt";  
  6.           
  7.         s = s.replaceAll("([a-zA-Z])([0-9])""$1,$2");  
  8.         s = s.replaceAll("([0-9])([a-zA-Z])""$1,$2");  
  9.           
  10.         System.out.println(s);  
  11.           
  12.         // 然后正常使用split进行分割就可以了。  
  13.         s = s.split(",");  
  14.     }  
  15. }  

你可能感兴趣的:(编程算法基础(java),算法,正则表达式,正则)