Java里面是如何支持正则表达式操作的?
正则表达式:是用来匹配字符串,检查一定的格式,按照格式分组,替换。
举个例子:
- 在母字符串里面匹配出子字符串
package one; import java.util.*; import java.util.regex.Pattern; public class Deom { public static void main(String args[]) { String m="I am men"; String n=".*men.*"; boolean result=Pattern.matches(n,m); System.out.print("结果是"+result); } }
- 分组(捕获组),把多个字符串当作一个单独的单元进行分组。举个例子表达式((A)(B(C))可以分成下面这几个组
·((A)(B(C))
·(A)
·(B(C))
·(C)
可以通过调用matcher对象的groupCount方法来查看表达式到底有几个分组。其返回一个int值,表示matcher对象当前有多少个捕获组
package one;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Deom1 {
public static void main(String args[])
{
String Parents="book is 3000 page";
String m="(\\D*)(\\d+)(.*)";
Pattern r=Pattern.compile(m);
Matcher mm=r.matcher(Parents);
if(mm.find())
{
System.out.println("第一组"+mm.group(0));
System.out.println("第二组"+mm.group(1));
System.out.println("第三组"+mm.group(2));
System.out.println("第四组"+mm.group(3));
}
}
}
3.统计耨个子字符串出现的次数
package one;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Deom2 {
public static void main(String args[])
{
int count=0;
String parents="m m m m mm";
String foot="\\bm\\b";
Pattern p=Pattern.compile(foot);
Matcher m=p.matcher(parents);
while(m.find())
{
count++;
}
System.out.print(count);
}
}
正则表达式有它自己的语法可以自行百度