在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>");

  }

  %>(www.csdn.net) 

你可能感兴趣的:(正则表达式)