我正在尝试显示博客的摘录作为搜索的结果,通过标签。在这些简短的段落中使用img或blockquote标记并不理想,所以我希望将它们连同内容一起去掉。
为了做到这一点,我的想法是与正则表达式匹配标记,然后用空字符串替换它们。这是我的密码:
protected static String removeTags(String s)
{
String reg = "<img .*>";
String excerpt = s.replace(reg, "");
System.out.println(excerpt);
return excerpt;
}如果在正则表达式中没有出现像*、<、>这样的符号,那么代码似乎运行得很好:实际上,如果我的正则表达式只是img,那么代码就能很好地完成它的工作,然后它就被删除了。我试过使用类似的模式,如\\w和其他模式,但似乎它们与代码不匹配。我做错了什么?
发布于 2014-01-12 12:34:23
如果要在匹配中使用regex,则需要使用replaceAll()而不是replace()。
而且,您可能不想使用.*,因为*是一个贪婪的量词,它将消耗数据中的最后一个>。尝试.*? (不情愿的量词)或[^>]*代替。
https://stackoverflow.com/questions/21074629
复制相似问题