有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java字符串。带有regexp问题的replaceAll()

我有一个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("\\<.*?\\>", "");

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

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

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

谢谢


共 (1) 个答案

  1. # 1 楼答案

    你的两个案子都不应该起作用。在第二种情况下:

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

    content没有被分配任何初始值时,replaceAll方法将在content中替换什么

    最后一行应该是:

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

    在这两种情况下,都需要正常工作

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