package ch13string; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created with IntelliJ IDEA. * User: yidao * Date: 12-6-2 * Time: 下午3:43 * java的正则表达式 */ public class RegularExpression { /** * 匹配整个字符串 * * @param regex * @param str * @return */ public boolean matches(String regex, String str) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); return matcher.matches(); } /** * 匹配字符串的开始部分 * * @param regex * @param str * @return */ public boolean lookingAt(String regex, String str) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); return matcher.lookingAt(); } /** * 查找多个匹配 * * @param regex * @param str * @return */ public List<String> find(String regex, String str) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); List<String> result = new ArrayList<String>(); while (matcher.find()) { result.add("group->" + matcher.group() + "\nstart->" + matcher.start() + "\nend->" + matcher.end() + "\n"); } return result; } /** * 组是用括号划分的正则表达式regex * 比如A(B(C))D:组0是ABCD,组1是BC,组2是C * * @param regex * @param str * @return */ public List<String> group(String regex, String str) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); List<String> result = new ArrayList<String>(); return result; } }