/** * * @author Zen Johnny * @date 2018年4月29日 下午4:51:08 * */ package demo.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexGetDemo { public static void getDemo(String string, String regex) { //step1:将规则封装成对象 Pattern pattern = Pattern.compile(regex); //step2:让正则对象和要提取的字符串相关联,获取匹配(器)引擎对象 Matcher matcher = pattern.matcher(string); while(matcher.find()) {//不断地利用正则引擎查找符合正则表达式的对象,找到:true;没有找到:false System.out.println("start:" + matcher.start() + " word:" + matcher.group() + " end:" + matcher.end()); //返回当前查找到的一个子串,并返回其单词的开始start()与结束区间end() } } public static void main(String args[]) { //将连续3个字母以上的单词提取出来 //提示::单词边界;B非单词边界 String string = "ming tian jiu yao fang jia la,da jia~"; String regex = "\b[a-zA-Z]{3,}\b"; getDemo(string,regex); /* ming tian jiu yao fang jia jia */ } }
output
start:0 word:ming end:4 start:5 word:tian end:9 start:10 word:jiu end:13 start:14 word:yao end:17 start:18 word:fang end:22 start:23 word:jia end:26 start:33 word:jia end:36