控制台没有输出
# 具体遇到的问题
正则表达式匹配之后控制台没有输出
# 报错信息的截图
没有报错
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
package regex;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexSample {
public static void main(String[] args) {
//1.读取原始文件
StringBuilder content=new StringBuilder();//存放文件的内容
try {
FileInputStream fis=new FileInputStream("E:\\workspace\\eclips_ee_workspace\\regex\\WebContent\\sample.html");//文件输入流→处理二进制文件
//二进制流→字符流
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
BufferedReader bufferedReader=new BufferedReader(isr);//提高对原始文件的读取效率
String lineText="";//保存每一行读取的数据
//(lineText=bufferedReader.readLine())!=null readLine()读取整行,当返回值为null的时候表示读取完成
while((lineText=bufferedReader.readLine())!=null) {
// System.out.println(lineText);
content.append(lineText+"\n");
}
bufferedReader.close();
// System.out.println(content);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Pattern→正则表达式的类
//1.创建正则表达式对象
Pattern p=Pattern.compile("<li>([\\u4e00-\\u9fa5])({2,10}[a~zA~Z]+)</li>");
//2.匹配正则表达式
Matcher m=p.matcher(content);
//3.查找匹配的结果
while(m.find()) {
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}
正在回答
同学你好,同学的正则表达式有误,应该是:
Pattern p = Pattern.compile("<li>([\\u4e00-\\u9fa5]{2,10})([a-zA-Z]+)</li>");
表示匹配中文2-10个字符;匹配英文,且长度至少出现一次。
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星