1.现在有一个要求就是判断一段字符串是否由字符串组成?



有两种方法:
1、
public class RegexDemo
{
public static void main(String[]
args) {
String str= "1233333333333" ;
boolean flag=true ;
char a[]=str.toCharArray();
for (int i=0;i<a. length;i++){
if (a[i]<'0' ||a[i]> '9'){
flag= false ;
break ;
}
}
if (flag){
System. out .println("是有数字组成" );
} else {
System. out .println("不是有数字组成" );
}
}
}
结果:
是有数字组成
2.
public class RegexDemo1
{
public static void main(String[]
args) {
String str= "12333333333" ;
if (Pattern.compile( "[0-9]+" ).matcher(str).matches()){
System. out .println("是有数字组成" );
} else {
System. out.println( "不是有数字组成" );
}
}
}
结果:
是有数字组成
通过上面的两段代码,显然第二段要少很多代码,这就是正则表达式
2.如果想要学会正则表达式你就必须知道Pattern类和Matcher类
pattern类的作用是用来进行正则规范的,而Matcher类是用来执行规范的
3.下面来做一个简单的验证
日期的要要求是:yyyy-MM-dd
正则表达式:
例:2008-12-21
\d{4}-\d{2}-\d{2}
public class RegexDemo2
{
public static void main(String[]
args) {
String str= "2009-12-23" ;
String pat= "\\d{4}-\\d{2}-\\d{2}" ;
Pattern pattern=Pattern. compile(pat); //实例化Pattern类
Matcher matcher=pattern.matcher(str);
if (matcher.matches()){
System. out .println("日期格式合法" );
} else {
System. out .println("日期格式不合法" );
}
}
}
结果:
日期格式合法
4.进行字符串的拆分
public class RegexDemo3
{
public static void main(String[]
args) {
String str= "A12313B2312C131231D3432E" ;
String pat= "\\d+" ;
Pattern pattern=Pattern. compile(pat);
String s[]=pattern.split(str);
for (int i=0;i<s. length;i++){
System. out .print(s[i]+"\t" );
}
}
}
结果:
A B C D E
5.替换操作
public class RegexDemo4
{
public static void main(String[]
args) {
String str= "A21312B23123B2312C321D231231E" ;
String pat= "\\d+" ;
Pattern pattern=Pattern. compile(pat);
Matcher matcher=pattern.matcher(str);
String newString=matcher.replaceAll( "-" );
System. out .println(newString);
}
}
结果:
A-B-B-C-D-E
5.String类对正则表达式的支持
public class RegexDemo5
{
public static void main(String[]
args) {
String str="A21312B31231C2321D3213E" .replaceAll( "\\d+", "-" );
boolean temp="2013-11-23" .matches( "\\d{4}-\\d{2}-\\d{2}");
String s[]="A6SADAS67789ADS7D89AS" .split("\\d+" );
System. out .println(str);
System. out .println(temp);
for (int i=0;i<s. length;i++){
System. out .print(s[i]+"\t" );
}
}
}
结果:
A-B-C-D-E
true
A SADAS ADS D AS