在JAVA中使用正则表达式
jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。
正则表达式对字符串的操作主要包括:字符串匹配,指定字符串替换,指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的:
<%@pageimport="java.util.regex.*"%>
<%
Patternp=null;//正则表达式
Matcherm=null;//操作的字符串
booleanb;
Strings=null;
StringBuffersb=null;
inti=0;
//字符串匹配,这是不符合的
p=Pattern.compile("a*b");
m=p.matcher("baaaaab");
b=m.matches();
out.println(b+"<br>");
//字符串匹配,这是符合的p = Pattern.compile("a*b");
m=p.matcher("aaaaab");
b=m.matches();
out.println(b+"<br>");
//字符串替换
p=Pattern.compile("ab");
m=p.matcher("aaaaab");
s=m.replaceAll("d");
out.println(s+"<br>");
p=Pattern.compile("a*b");
m=p.matcher("aaaaab");
s=m.replaceAll("d");
out.println(s+"<br>");
p = Pattern.compile("a*b");m = p.matcher("caaaaab");
s=m.replaceAll("d");
out.println(s+"<br>");
//字符串查找
p=Pattern.compile("cat");
m=p.matcher("onecattwocatsintheyard");
sb=newStringBuffer();
while(m.find()){
m.appendReplacement(sb,"dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+"<br>");
out.println(i+"<br>");
i=0;
m=p.matcher("onecattwocatsintheyard");
sb=newStringBuffer();
while(m.find()){
m.appendReplacement(sb,"dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+"<br>");
out.println(i+"<br>");
p=Pattern.compile("cat");
m=p.matcher("onecattwocatsintheyard");
p=m.pattern();m=p.matcher("bacatab");
b=m.matches();
out.println(b+"<br>");
s=m.replaceAll("dog");
out.println(s+"<br>");
i=0;
p=Pattern.compile("(fds){2,}");
m=p.matcher("dsadafdsfdsaaafdsafdsaaf");
sb=newStringBuffer();
while(m.find()){
m.appendReplacement(sb,"dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+"< br>");p=Pattern.compile("cat");
m=p.matcher("onecattwocatsintheyard");
sb=newStringBuffer();
while(m.find()){
m.appendReplacement(sb,"cat");
}
m.appendTail(sb);
out.println(sb.toString()+"<br>");
Stringaa=sb.toString();
out.println(aa+"<br>");
//字符串分割
p=Pattern.compile("a+");
String[]a=p.split("caaaaaat");
for(i=0;iout.println(a[i]+"<br>");
}
p=Pattern.compile("a+");
a=p.split("caaaaaat",0);
for(i=0;i
{
out.println(a[i]+"<br>");
}
p=Pattern.compile("+");
a=p.split("caaaaaat",0);
for(i=0;i
{
out.println(a[i]+"<br>");
}
p=Pattern.compile("\\+");
a=p.split("dsafasdfdsafsda+dsagfasdfa+sdafds");
out.println(a.length+"<br>");
for(i=0;i
{
out.println(a[i]+"<br>");
}
%>(www.csdn.net)