正则匹配关键字(汉字或字母)所在的句子
大家好,我想了解怎么用正则匹配关键字(汉字或字母)所在的句子,举个例子便于大家理解:
我是中国人,我是中国人,我是中国人。我是中国人,我是中国人,我是中国人,我是中国人。 Java 正则表达式?
[解决办法]
你举得例子反而让我更不理解了。。
可不可以描述详细一点?
[解决办法]
匹配条件就是包括“帖子”这个汉字关键字,并且以"。"开,"。"结尾是吧?
//正则提取
public static List<String> getContext2() {
//String html="kk<p>123456</p>ssss";
String html="ss。kk帖子。ss";
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile("。(.*?)。");//匹配<p>开头,</p>结尾的文档
Matcher m = p.matcher(html );//开始编译
while (m.find()) {
String str=m.group(1);
if(str.contains("帖子")){
resultList.add(str);//获取被匹配的部分
}
}
return resultList;
}
这样应该就可以了。
[解决办法]
如果是标准的中文文章的话句子应该只以。结束
//根据你要的关键字和文章内容进行查找句子
public List<String> getStringByKeyWords(String keyWords,String content){
List<String> list=new ArrayList<String>();
Matcher m=Pattern.compile("(.*?"+keyWords+".*?)。").matcher(content);
while(m.find())
list.add(m.group(1));
return list;
}
//根据你要的关键字和文章内容进行查找句子
public static List<String> getStringByKeyWords(String keyWords,String content){
List<String> list=new ArrayList<String>();
content=content.replaceAll("[\r\n]+","");//先把文章中出现换行的先去掉
Matcher m=Pattern.compile("([^。]*?"+keyWords+".*?)。").matcher(content);
while(m.find())
list.add(m.group(1));
return list;
}
[解决办法]