Java 带有regexp问题的String.replaceAll()

Java 带有regexp问题的String.replaceAll(),java,regex,Java,Regex,我有一个java代码,其中我使用SpringHibernate原生查询从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

我有一个java代码,其中我使用SpringHibernate原生查询从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("\\<.*?\\>", "");
String sql=“SELECT*FROM posts LIMIT 1”;
SQLQuery=getSession().createSQLQuery(sql);
query.setResultTransformer(Transformers.ALIAS\u TO\u ENTITY\u映射);
Map each=(Map)query.uniqueResult();
字符串消息=(字符串)each.get(“消息”);
字符串内容=message.replaceAll(“\\”,“”);
但是为什么replaceAll在这里不起作用呢

但对于该代码,它是有效的:

  String message = "<a>blablasdddfdf</a>";
  String content = message.replaceAll("\\<.*?\\>", "");
String message=“blablasdfdf”;
字符串内容=message.replaceAll(“\\”,“”);

谢谢

你的两个案子都不应该奏效。在第二种情况下:

String message = "<a>blablasdddfdf</a>";
String content = content.replaceAll("\\<.*?\\>", "");
在这两种情况下,都需要正常工作


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

查看
String message
的值是什么?我猜您键入了
String content=content.repl
?在第二种情况下它是如何工作的?之后内容的价值是什么?你读过这篇文章吗?在第一个代码中,消息有一个值,它从对象转换为字符串。我想知道String.replaceAll()对强制转换字符串不起作用?强制转换并不重要。只要JVM允许将对象强制转换为字符串,就可以对其调用replaceAll()。可能需要先检查消息的值,然后再对其调用replaceAll()。它可能包含空字符串或其他意外内容。它包含值,即正确的字符串。我试图输出该值,复制它并将该值赋给字符串变量:string value=“sdsd

”;然后使用value.replaceAll()就可以了。如果我从db查询结果中读取值并使用replaceAll,它将不起作用。
 String content = message.replaceAll("\\<.*?\\>", "");