在JAVA中使用正規表示式 (轉)

worldblog發表於2007-08-16
在JAVA中使用正規表示式 (轉)[@more@] 

在中使用正則:namespace prefix = o ns = "urn:schemas--com::office" />

  1.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+"
");

//字串匹配,這是符合的

  p = Pattern.compile("a*b");

  m = p.matcher("aaaaab");

  b = m.matches();

  out.println(b+"
");

//字串替換

  p = Pattern.compile("ab");

  m = p.matcher("aaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"
");

  p = Pattern.compile("a*b");

  m = p.matcher("aaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"
");

  p = Pattern.compile("a*b");

  m = p.matcher("caaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"
");

//字串查詢

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

 out.println(i+"
");

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

 out.println(i+"
");

 

 

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

 s = m.replaceAll("dog");

 out.println(s+"
");

 

 i=0;

 p = Pattern.compile("(fds){2,}");

 m = p.matcher("dsa da fdds aaafdsafds aaf");

  sb = new StringBuffer();

 while (m.find()) {

  m.appendReplacement(sb, "dog");

  i++;

 }

 m.appendTail(sb);

 out.println(sb.toString()+"
");

 out.println(i+"
");

 

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

String aa=sb.toString();

out.println(aa+"
");

//字串分割

  p = Pattern.compile("a+");

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

  for(i=0;i

  {

  out.println(a[i]+"
");

  }

  p = Pattern.compile("a+");

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

  for(i=0;i

  {

  out.println(a[i]+"
");

  }

  p = Pattern.compile(" +");

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

  for(i=0;i

  {

  out.println(a[i]+"
");

  }

  p = Pattern.compile("+");

  a=p.split("dsafasdfdsafsda+dsagfasdfa+sdafds");

  out.println(a.length+"
");

  for(i=0;i

  {

  out.println(a[i]+"
");

  }

%>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-962118/,如需轉載,請註明出處,否則將追究法律責任。

相關文章