首页 > C风格编程语言 > JAVA编程资料 > 在JAVA中使用正则表达式
2006
10-08

在JAVA中使用正则表达式

jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。


  正则表达式对字符串的操作主要包括:字符串匹配,指定字符串替换,指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的:


   < %@ page import=”java.util.regex.*”%>


   < %


   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+”< 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(“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()+”< br>”);


   out.println(i+”< br>”);


   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()+”< br>”);


   out.println(i+”< br>”);




   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+”< br>”);


   s = m.replaceAll(“dog”);


   out.println(s+”< br>”);



   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()+”< br>”);


   out.println(i+”< br>”);



   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()+”< br>”);


   String aa=sb.toString();


   out.println(aa+”< br>”);


   //字符串分割


   p = Pattern.compile(“a+”);


   String[] a=p.split(“caaaaaat”);


   for(i=0;i
   {


   out.println(a[i]+”< br>”);


   }


   p = Pattern.compile(“a+”);


   a=p.split(“c aa aaaa t”,0);


   for(i=0;i


   {


   out.println(a[i]+”< br>”);


   }


   p = Pattern.compile(” +”);


   a=p.split(“c aa aaaa t”,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>”);


   }


   %>


在JAVA中使用正则表达式》有 2 条评论

  1. hiroki 说:

    这个不错啊

    支持

留下一个回复