首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

正则婚配关键字(汉字或字母)所在的句子

2013-02-28 
正则匹配关键字(汉字或字母)所在的句子大家好,我想了解怎么用正则匹配关键字(汉字或字母)所在的句子,举个

正则匹配关键字(汉字或字母)所在的句子
大家好,我想了解怎么用正则匹配关键字(汉字或字母)所在的句子,举个例子便于大家理解:
   我是中国人,我是中国人,我是中国人。我是中国人,我是中国人,我是中国人,我是中国人。 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; 
}

[解决办法]
引用:
牛人  顶!另外遇到回车换行会不会影响匹配结果呢?比如一句话不再同一行?也要匹配。

还有HTML标签该怎么处理呢?

我那个不是已经把回车换行先去掉了吗,就是不在同一行我们整成同一行,免得后面麻烦,还有你说的html标签是什么意思,例如<span id="yyy" style="......">xxxx</span>元素中间的xxxx要不要呢,
content=content.replaceAll("[\r\n]+","");//先把文章中出现换行的先去掉
如果只是<span id="yyy" style="......">和</span>不要就去掉
content=content.replaceAll("<.*?(/?)>
[解决办法]
</.*?>","");//再把文章中的只去标签的部分包括标签属性,标签属性有可能是<img ..../>这样的
如果是<span id="yyy" style="......">xxxx</span>全不要就去掉
content=content.replaceAll("<.*?>(.*?)</.*?>","");//再把文章中有html标签包起来的都去掉




[解决办法]

引用:
引用:
引用:
牛人  顶!另外遇到回车换行会不会影响匹配结果呢?比如一句话不再同一行?也要匹配。

还有HTML标签该怎么处理呢?
我那个不是已经把回车换行先去掉了吗,就是不在同一行我们整成同一行,免得后面麻烦,还有你说的html标签是什么意思,例如<span id="yyy" style="......">xx……

我上面不是写了只去标签保留内容吗
[解决办法]
content=content.replaceAll("<.*?>(.*?)</.*?>","");这个就是只去标签了啊

热点排行