String.replaceAll () с проблемой регулярного выражения - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть код Java, в котором я выбираю запись из базы данных, используя собственный запрос Spring Hibernate, и пытался вырезать теги 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 ]

2 голосов
/ 06 апреля 2011

Оба ваших случая не должны работать.Во втором случае:

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

что бы метод replaceAll заменил в content, если content не было назначено какое-либо начальное значение?

Ваша последняя строка должна быть:

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

в обоих случаях для правильной работы.

В первом случае просто убедитесь, что у вас есть какое-то значение в message, прежде чем вызывать replaceAll.

1 голос
/ 06 апреля 2011

Вы читали эту статью? Удалить теги HTML из строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...