在java开发中java正则表达式,是处理字符串比较有用的工具。
java中处理正则表达式主要有包java.util.regex.Pattern提供,主要是下面三个类:
Pattern,Matcher,PatternSyntaxException类。
下面简单看个例子来体会下java正则表达式的功能:
public static void main(String[] args){ String s = "@Shang Hai Hong Qiao Fei Ji Chang"; String regEx = "hang"; //表示a或F Pattern pat = Pattern.compile(regEx); Matcher mat = pat.matcher(s); boolean rs = mat.find(); System.out.println(rs); rs = mat.find(); System.out.println(rs); rs = mat.find(); System.out.println(rs); }
这段代码输出的结果是:
true
true
false
首先通过Pattern pat = Pattern.compile(regEx);获得一个模式对象,然后用模式对象去匹配目标字符串,匹配的结果返回一个Matcher对象,然后调用Matcher对象的find方法,就会开始真正的扫描字符串的过程
,一直去找到匹配模式字符串为止,如果找到那么find就会立即停止,并且返回true,记住当前目标字符串的索引。除非调用reset方法,否则下次在调用find方法都会从这个索引开始从新查找,直到消耗所有的字串。
模式匹配的group
首先模式串就必须是支持分组的,如下面这样Pattern p = Pattern.compile("(\\d+,)(\\d+)");
然后调用Matcher对象的find函数匹配到目标串,每组的匹配字串,就可以调用group函数来取得每组的匹配字串。