2007-03-29 16:56
在JAVA中使用正则表达式
jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。
正则表达式对字符串的操作主要包括:字符串匹配,指定字符串替换,指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的:
Pattern p=null; //正则表达式
Matcher m=null; //操作的字符串
boolean b;
String s=null;
StringBuffer sb=null;
int i=0;
//字符串匹配,这是不符合的
p = Pattern.compile("a*b");
m = p.matcher("baaaaab");
b = m.matches();
out.println(b+" "); false //字符串匹配,这是符合的
p = Pattern.compile("a*b");
m = p.matcher("aaaaab");
b = m.matches();
out.println(b+" "); true //字符串替换
p = Pattern.compile("ab");
m = p.matcher("aaaaab");
s = m.replaceAll("d");
out.println(s+" "); aaaad p = Pattern.compile("a*b");
m = p.matcher("aaaaab");
s = m.replaceAll("d");
out.println(s+" "); d p = Pattern.compile("a*b");
m = p.matcher("caaaaab");
s = m.replaceAll("d");
out.println(s+" "); cd //字符串查找
p = Pattern.compile("cat");
m = p.matcher("one cat two cats in the yard");
sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+" "); one dog two dogs in the yard out.println(i+" "); 2 i=0;
p = Pattern.compile("cat");
m = p.matcher("one cat two ca tsi nthe yard");
sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+" "); one dog two ca tsi n the yard out.println(i+" "); 1
p = Pattern.compile("cat");
m = p.matcher("one cat two cats in the yard");
p=m.pattern();
m = p.matcher("bacatab");
b = m.matches();
out.println(b+" "); false s = m.replaceAll("dog"); out.println(s+" "); badogab
i=0;
p = Pattern.compile("(fds){2,}");
m = p.matcher("dsa da fdsfds aaafdsafds aaf");
sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
i++;
}
m.appendTail(sb);
out.println(sb.toString()+" "); dsa da dog aaafdsafds aaf
out.println(i+" "); 1
p = Pattern.compile("cat");
m = p.matcher("one cat two cats in the yard");
sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "cat");
}
m.appendTail(sb);
out.println(sb.toString()+" "); one cat two cats in the yard
String aa=sb.toString();
out.println(aa+" "); one cat two cats in the yard
//字符串分割
p = Pattern.compile("a+");
String[] a=p.split("caaaaaat");
for(i=0;i {
out.println(a[i]+" ");
} c
t p = Pattern.compile("a+");
a=p.split("c aa aaaa t",0);
for(i=0;i {
out.println(a[i]+" ");
} c
tp = Pattern.compile(" +");
a=p.split("c aa aaaa t",0);
for(i=0;i {
out.println(a[i]+" ");
} c
aa
aaaa
t p = Pattern.compile("\+");
a=p.split("dsafasdfdsafsda+dsagfasdfa+sdafds");
out.println(a.length+" ");
for(i=0;i {
out.println(a[i]+" ");
}
%>
dsafasdfdsafsda
dsagfasdfa
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7178747/viewspace-160792/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7178747/viewspace-160792/