Java中正则表达式的使用是很方便的,基本上只需要使用java.util.regex包下的两个类就行,分别是Pattern和Matcher。
Pattern:正则表达式的编译表示形式,指定的正则表达式必须首先编译为此类的实例然后才可以匹配字符生成Matcher对象。
Matcher:通过Pattern对字符匹配创建,可以通过它来判断Pattern是否匹配成功,以及在匹配成功的情况下从字符串中取出需要的内容。
以下是我写的一个小例子,从一段字符串中利用正则表达式取出需要的内容:
1 package regex; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class RegexTest { 7 8 public static void main(String[] args) { 9 // 需要解析的测试日志 10 String testLog = "INFO 2014-12-31 23:59:00,435 something transaction, cost time: 123, rscode: abcd, no: 1234567890"; 11 // 用来解析日志的正则表达式,括号中为匹配成功之后需要取出的数据 12 String regex = "(\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d) .+, cost time: (\\d+), rscode: (\\w+), no: (\\d+)"; 13 14 // 将正则表达式编译成Pattern实例 15 Pattern pattern = Pattern.compile(regex); 16 // 匹配日志,创建Matcher对象 17 Matcher matcher = pattern.matcher(testLog); 18 // 判断是否匹配成功 19 boolean flag = matcher.find(); 20 21 if (flag) { 22 StringBuffer sb = new StringBuffer(); 23 // 将匹配到的数据按照正则表达式中的顺序取出 24 for (int i = 1; i <= matcher.groupCount(); i++) { 25 sb.append(matcher.group(i) + "||"); 26 } 27 System.out.println(sb.toString()); 28 } 29 } 30 31 }
输出结果为:2014-12-31 23:59:00,435||123||abcd||1234567890||
以上就是我对于在Java中使用正则表达式的初步理解,如有不当之处,还望各位多多指教!
--------------------------------------------------我是资源分割线----------------------------------------------
有关正则表达式的语法及使用可以参考以下网站:
http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx
时间: 2024-10-11 17:56:25