您的位置:首页 > 编程语言 > Java开发

在JAVA中使用正则表达式

2007-04-22 14:20 435 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: