您的位置:首页 > 编程语言 > Java开发

JAVA 正则表达式(匹配、切割、替换)

2013-04-12 20:47 645 查看
//仅作为学习笔记

/*
正则表达式:符合一定规则的表达式

作用:用于专门操作字符串
特点:用于一些特定的符号来表示一些代码操作  来简化书写

优点: 简化对字符创的复杂操作
弊端:符号定义越多 正则越长 阅读性越差

具体操作功能:
1,匹配:String matches方法   用规则来匹配字符串 返回值为boolean

2,切割:String split();
按照叠词完成切割,为了可以让规则的结果可以被重用
可以将规则封装成一个组   用()来完成  组的出现都有编号
从1 开始  想要使用已有的组  可以通过 \n(n是组的编号)形式来获取

3,替换  String replaceAll()

*/

class RegexDemo
{
public static void main(String []args)
{
//checkQQ();
//splitDemo("c\\abc\\a.txt","\\\\");
/*
用()来对字符封装成组,序号系统会自动从1开始 下次要使用时
可以反斜杠+组号来捕获想要的组(在字符串中反斜杠要转义)
*/
//splitDemo("earfahhafkakkadhbfbba","(.)\\1");//按照叠词完成切割
//splitDemo("earfahhafkakkadhbfbba","(.)\\1+");  如果表示相同字符出现一次或多次 可以加上一个+

//replaceAllDemo("adsf2342525jkah3225lnjkn25435","\\d{5,}","*");

replaceAllDemo("adhikhjjjjafiukllladhhh","(.)\\1+","$1");//将在一起的重叠的字符换成同一个字符

}

public static void replaceAllDemo(String str, String reg,String newStr)
{
str = str.replaceAll(reg,newStr);
System.out.println(str);
}

public static void splitDemo(String str,String reg)
//public static void splitDemo()
{
//String str = "zhangsan     lisi   wangwu";
//String str = "zhangsan.lisi.wangwu";
//String reg = " +";//表示空格出现一次或多次

//String str1 = "c\\abc\\a.txt";
//String reg1 = "\\\\";

//由于.号本身就是正则表达式里的符号 因此此处要加上\,
//另外再加上个\表示转义
//String reg = "\\.";
String [] arr = str.split(reg);
System.out.println(arr.length);
for(String s : arr)
{
System.out.println(s);
}
}

//使用了正则表达式的代码
public static void checkQQ()
{
String qq = "24325425";

String regex = "[1-9][0-9]{4,14}";

boolean flag = qq.matches(regex);
if(flag)
System.out.println(qq+"...is  ok");
else
System.out.println(qq + "... is  not!");
}

/*
对QQ号码进行校验
要求:长度为5_15 不能以0开头 只能是数字
*/
//下面这种方法是用类String 中的方法 不过代码略显复杂
public static void checkQQ_1()
{
String qq = "12322";
int len = qq.length();

if(len >= 5 && len <= 15)
{
if( !qq.startsWith("0"))
{
try
{
long l = Long.parseLong(qq);
System.out.println("qq:"+qq);
}
catch (NumberFormatException e)
{
System.out.println("出现非法字符!");
}

/*
boolean flag = true;
char []arr = qq.toCharArray();
for( int x = 0; x< arr.length ; x++)
{
if(!(arr[x] >= '0' && arr[x]<= '9'))
{
flag = false;
break;
}
}
if(flag)
{
System.out.println("qq :" +qq);
}
else
{
System.out.println("出现非法字符!");
}
}
else
{
System.out.println("不可以以0 开头!");
}
*/
}
}
else
{
System.out.println("长度不够!");
}

}

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