会计考友 发表于 2012-8-4 12:28:23

java认证辅导:正确使用JAVA语言编程表达式

JAVA 正则表达式涉及的三个类:
  String,Pattern,Matcher
  Pattern是要匹配的模式,Matcher是匹配的结果.
  例如:Pattern p = Pattern.complie("{3}");
  Matcher m = p.mather("abc");
  要想在正则表达式中匹配一个反斜线用四个反斜线表示: "\\".matches("\\\\");
  匹配空白行 " \n".matches("^[\\s&&[^\\n]]*\\n$");
  找出匹配结果在整个字符串的开始位置和结束位置
  Pattern p = Pattern.complie("\\d{3,5}");
  String a = "123-2135-155-00";
  Matcher m = p.matcher(s);
  m.matches() // 匹配整个字符串,所以这里是false;
  m.reset();
  while(m.find()) // 找一个和这个模式所匹配的子串
  {
  System.out.println(m.start() + "To" + m.end());
  }
  将匹配到的java都转换成大写的
  Pattern p = Pattern.complie("java", Pattern.CASE_INSENSITIVE);
  Matcher m = p.matcher("java Java JaVa IloveJava You HateJaVA");
  m.replaceAll("JAVA");
  将匹配偶数个转换为大写,奇数个转换为小写
  package zx.test;
  import java.util.regex.Matcher;
  import java.util.regex.Pattern;
  public class TestPattern
  {
  public static void main(String[] args)
  {
  StringBuffer newString = new StringBuffer();
  String isPatternString = "java Java JaVa IloveJava You HateJaVA";
  Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
  Matcher m = p.matcher(isPatternString);
  int i = 0;
  while(m.find())
  {
  i++;
  if (i % 2 == 0)
  {
  m.appendReplacement(newString, "java");
  }
  else
  {
  m.appendReplacement(newString, "JAVA");
  }
  }
  m.appendTail(newString);
  System.out.println(newString);
  }
  }
  输出结果:JAVA java JAVA Ilovejava You HateJAVA
  Java正则表达式分组:
  private static void testGroup()
  {
  String s = "3412afdsaf-34ijii-422342k23-423423fsdfaf";
  Pattern p = Pattern.compile("(\\d{1,10})({1,9})"); // 组1:(\\d{1,10}) 组2:({1,9})
  Matcher m = p.matcher(s);
  while(m.find())
  {
  System.out.println("Group0: " + m.group() + " Group1: " + m.group(1) + " Group2: " + m.group(2));
  }
  }
  输出结果:
  Group0: 3412afdsaf Group1: 3412 Group2: afdsaf
  Group0: 34ijii Group1: 34 Group2: ijii
  Group0: 422342k Group1: 422342 Group2: k
  Group0: 423423fsdfaf Group1: 423423 Group2: fsdfaf
页: [1]
查看完整版本: java认证辅导:正确使用JAVA语言编程表达式