首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配带有正则表达式的标记,并在Java中去掉它们

问匹配带有正则表达式的标记,并在Java中去掉它们
EN

Stack Overflow用户
提问于 2014-01-12 12:29:32
回答 1查看 43关注 0票数 0

我正在尝试显示博客的摘录作为搜索的结果,通过标签。在这些简短的段落中使用img或blockquote标记并不理想,所以我希望将它们连同内容一起去掉。

为了做到这一点,我的想法是与正则表达式匹配标记,然后用空字符串替换它们。这是我的密码:

代码语言:javascript
复制
protected static String removeTags(String s)
    {
        String reg = "<img .*>";
        String excerpt = s.replace(reg, "");
        System.out.println(excerpt);
        return excerpt;
    }

如果在正则表达式中没有出现像*、<、>这样的符号,那么代码似乎运行得很好:实际上,如果我的正则表达式只是img,那么代码就能很好地完成它的工作,然后它就被删除了。我试过使用类似的模式,如\\w和其他模式,但似乎它们与代码不匹配。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 12:34:23

如果要在匹配中使用regex,则需要使用replaceAll()而不是replace()。

而且,您可能不想使用.*,因为*是一个贪婪的量词,它将消耗数据中的最后一个>。尝试.*? (不情愿的量词)或[^>]*代替。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21074629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档