我有一个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("\\<.*?\\>", "");
感谢。
答案 0 :(得分:2)
你的两个案子都不行。在第二种情况下:
String message = "<a>blablasdddfdf</a>";
String content = content.replaceAll("\\<.*?\\>", "");
replaceAll
当content
未分配任何初始值时,content
方法将取代什么?
你的最后一行应该是:
String content = message.replaceAll("\\<.*?\\>", "");
在两种情况下都能正常工作。
在第一种情况下,在调用message
之前,请确保replaceAll
中有一些值。
答案 1 :(得分:1)
你读过这篇文章了吗? Remove HTML tags from a String