String.replaceAll()与正则表达式问题

时间:2011-04-06 13:34:15

标签: java regex

我有一个java代码,我使用Spring Hibernate本机查询从db中选择一条记录,并尝试从文本中删除HTML标记。

  String sql = " SELECT * FROM posts LIMIT 1 ";
  SQLQuery query = getSession().createSQLQuery(sql);
  query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
  Map each = (Map)query.uniqueResult();     
  String message = (String)each.get("Message");
  String content = message.replaceAll("\\<.*?\\>", "");

但为什么replaceAll在这里不起作用?

但是对于这段代码它可以工作:

  String message = "<a>blablasdddfdf</a>";
  String content = message.replaceAll("\\<.*?\\>", "");

感谢。

2 个答案:

答案 0 :(得分:2)

你的两个案子都不行。在第二种情况下:

String message = "<a>blablasdddfdf</a>";
String content = content.replaceAll("\\<.*?\\>", "");

replaceAllcontent未分配任何初始值时,content方法将取代什么?

你的最后一行应该是:

 String content = message.replaceAll("\\<.*?\\>", "");

在两种情况下都能正常工作。

在第一种情况下,在调用message之前,请确保replaceAll中有一些值。

答案 1 :(得分:1)

你读过这篇文章了吗? Remove HTML tags from a String