从字符串里面匹配截取指定内容

一、从字符串里面匹配截取指定内容

需求是这样的:从字符串"49.08(总行:28.0分行:60.0)"里面匹配提取出三个分值49.08、28.0、60.0

     这里总结了三种方法:

public class TestRegex {
	
	
	// 方法一
	public  String[] test1(String str){
		String[] split = str.replaceAll("([^0-9.])+", ",").split("\\,");
		return split;
	}
	
	//  方法二
	public  ArrayList test2(String str){
		ArrayList numarray = new ArrayList<>();
			String num = "";
			if(str != null && !"".equals(str)){
				for(int i=0;i=48 && str.charAt(i)<=57||str.charAt(i)==46){
						num += str.charAt(i);
					}else{
						if(!num.isEmpty())
							numarray.add(num);
							num = "";
						}
				}
			}
			
		return numarray;
	}
	
	
	// 方法三
	public  List test3(String str){
		  String pattern = "(\\d+\\.\\d+)(\\D*)(\\d+\\.\\d+)(\\D*)(\\d+\\.\\d+)";
	      // 创建 Pattern 对象
	      Pattern r = Pattern.compile(pattern);
	      List list = new ArrayList<>();
	      // 现在创建 matcher 对象
	      Matcher m = r.matcher(str);
	      if (m.find( )) {
	        list.add(m.group(1));
	        list.add(m.group(3));
	        list.add(m.group(5));
	      } else {
	         System.out.println("NO MATCH");
	      }
	      return list;
	}
	
	@Test
	public void GG(){
		String str = "49.08(总行:28.0分行:60.0)";
		String [] split = test1(str);
		ArrayList numarray = test2(str);
		List list = test3(str);
	}



你可能感兴趣的:(正则表达式,字符串匹配截取)