例一:
- /*
- 串的处理中直接使用正则的API
- split
- match
- replaceAll
- */
- public class T1
- {
- public static void main(String[] args)
- {
- //把串中的表示日期的子串变换成另一种日期表达格式
- String s = "abc,kkk 2015-08-19 ttk";
- s = s.replaceAll("([0-9]{4})-([0-9]{2})-([0-9]{2})", "$2/$3 $1年");
- System.out.println(s);
- /*
- // 判断一个串,是否为Excel地址的表达格式
- String s = "A3";
- System.out.println(s.matches("[A-F]{1,2}[0-9]{1,5}"));
- */
- /*
- // 被一个或多个空格分割的字符串分离出来
- String s = "ab xyz kkk";
- //String[] ss = s.split(" {1,}");
- String[] ss = s.split(" +");
- for(int i=0; i<ss.length; i++){
- System.out.println(ss[i]);
- }
- */
- }
- }
例二;
方法一:
- /*第02讲-正则表达式初步_分散字符串
- 请把下列字符串分散为数字和字符构成的串
- String s1 = "abc1234xyz667kkmd764tttt";
- 串由字母和数字间隔构成,要分离出所有的字母段和数字段,即:
- abc
- 1234
- xyz
- 667
- kkmd
- 764
- tttt
- */
- public class C4 {
- public static void main(String[] args) {
- String s1 = "abc1234xyz667kkmd764tttt";
- String []s2 = s1.split("[0-9]{1,}");
- String []s3 = s1.split("[a-z]{1,}");
- int i;
- for(i = 0; i < s2.length && i < s3.length; ++i)
- {
- if(!s2[i].equals(""))
- System.out.println(s2[i]);
- if(!s3[i].equals(""))
- System.out.println(i+s3[i]);
- }
- if(i == s2.length){//s2已经输出完,继续输出s3
- for(int j = i; j < s3.length; ++j){
- if(!s3[i].equals(""))
- System.out.println(i+s3[i]);
- }
- }
- else{//s3已经输出完,继续输出s2
- for(int j = i; j < s2.length; ++j){
- if(!s2[i].equals(""))
- System.out.println(i+s2[i]);
- }
- }
- }
- }
方法二:
- public class FenLi
- {
- public static void main(String[] args)
- {
- String s = "abc1234xyz667kkmd764tttt";
- s = s.replaceAll("([a-zA-Z])([0-9])", "$1,$2");
- s = s.replaceAll("([0-9])([a-zA-Z])", "$1,$2");
- System.out.println(s);
- // 然后正常使用split进行分割就可以了。
- s = s.split(",");
- }
- }