java的正则很强大,谁用谁知道
用到最多的还是ismatch,看看是否符合正则
还可以用它替代字符串,过滤非法字符,截取字符串,分割字符串
替代字符串:
替代回车符号
Pattern ilSingle = Pattern.compile("\r|\n"); String message = "xxxxxx"; message = ilSingle.matcher(message).replaceAll("");
截取字符串: expected:xxxxxx but was:xxxxxxx
Pattern p = Pattern.compile("(expected:)(.*?)(but was:)(.*)"); Matcher m = p.matcher(message); PigErrorBean bean = new PigErrorBean(); if(m.find()){ bean.setExpect(m.group(2)); bean.setOutput(m.group(4)); } return bean;
分割字符串:
(1,2,3),(6,5,4),(95,54,23),(44,53,54,12,43),(1,2),(2)
List<List<Object>> paramList = new LinkedList<List<Object>>(); Pattern pattern = Pattern.compile("(\\()(.*?)(\\))"); Matcher matcher = pattern.matcher(params); boolean hasMatcher = false; while (matcher.find()) { hasMatcher = true; List<Object> list = new LinkedList<Object>(); String strList = matcher.group(2); StringTokenizer st = new StringTokenizer(strList,","); while (st.hasMoreElements()) { Object param = st.nextElement(); list.add(param); } paramList.add(list); }