您的位置:首页 > 其它

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

2014-04-29 17:03 260 查看






例一:

[java] view
plaincopy





/*

串的处理中直接使用正则的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]);

}

*/

}

}

例二;

方法一:

[java] view
plaincopy





/*第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]);

}

}

}

}

方法二:

[java] view
plaincopy





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(",");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: