工作中经常会用到在文本中每行检索某种pattern,刚才测试了三种方式,发现实际性能和预想的有区别
方式1:
直接字符串的matches方法,【string.matches("\\d+")】
方式2:
先构建一个单行匹配的pattern,然后用这个pattern去match
Pattern p1=Pattern.compile("\\d+");
Matcher m=p1.matcher(sar[i]);
方式3:
构建一个可以匹配换行符DOTALL模式的pattern,然后在整个文本中find
Pattern p2=Pattern.compile("\\d+",Pattern.DOTALL );
importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classTestRe {/***@paramargs*/
public static voidmain(String[] args) {
String s1="abc";
String s2="123";//构建一个多行的字符串
StringBuilder stb=newStringBuilder();for(int i=0;i<10000;i++){int k=new Random().nextInt()%2;if(k==0){