package dkc_Parrtern1; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /* 正则表达式的获取 配合IO流,从一个文本读取文件,获取文件里面单词的个数 */ public class RegexDemo7 { public static void main(String[] args) { //在E盘的word.txt中随便写入几行汉字加单词 /*大家好!hello everybody,我来自寒寨, My name is duxiansen,I come from HanZhai.哈哈*/ File file = new File("E:\word.txt"); //1.读取文件声明BufferedReader对象br BufferedReader br = null; //2.创建Pattern的对象,传入一个正则表达式 Pattern p = null; //3.调用p对象中的matcher 获取匹配器对象 Matcher matcher = null; //4.定义计算器 int count = 0; try { br = new BufferedReader(new FileReader(file)); String str =""; while((str = br.readLine()) != null) { p = Pattern.compile("\b[a-zA-Z]+\b"); matcher = p.matcher(str); while(matcher.find()) { count++; } } System.out.println(count); br.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package dkc_Parrtern1; import java.util.regex.Matcher; import java.util.regex.Pattern; /* 正则表达式的获取功能: Pattern和Matcher类的使用 jin tian yao xia yu,da jia pa bu pa?huang bu huang? are you sure? 获取由三个字符组成的单词 */ public class RegexDemo6 { public static void main(String[] args) { String str = "jin tian yao xia yu,da jia pa bu pa?huang bu huang? are you sure?"; //1.创建Pattern的对象,传入一个正则表达式 Pattern p = Pattern.compile("\b[a-zA-Z]{3}\b");//(\b单词的边界) //调用p对象中的matcher 获取匹配器对象 Matcher matcher = p.matcher(str); //遍历得结果 int count = 0; while(matcher.find()) { System.out.print(matcher.group()+" "); count++; } System.out.println(count); // 不能单独使用,必须和found方法配合使用,否则报错:No match found //System.out.println(matcher.group()); } }