Java按正则提取字符串

时间:2021-07-24 16:29:32

  在Java开发中,有时会遇到一些比较别扭的规则从字符串中提取子字符串,规则无疑是写正则表达式来表达了,那按照正则来提取子字符串就会用到java.util.regex包。

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。

Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。

Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。

首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。

 package com.founder.mrp.util;

 import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 与String相关的工具方法集
* @author Jimmy
*
*/
public class StringUtil { public static String getMatcher(String regex, String source) {
String result = "";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
result = matcher.group(1);
}
return result;
} public static void main(String[] args) {
String url = "http://172.12.1.123/test.txt";
String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})";
// String regex = "(\\d{1,3}\\.){1,3}(\\d{1,3})";
System.out.println(getMatcher(regex,url));
} }

参考资料:

Pattern、Matcher: http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html

正则:http://deerchao.net/tutorials/regex/common.htm