Regexp, чтобы получить содержимое строки между двумя кавычками, начиная с заданного имени - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть несколько строк в XML-файле.

Мои строки похожи на <Blog blogDescription="bla bla bla" description="" date="2010-10-10"/>

Я работаю над всеми строками, начинающимися с "<Blog", где я хочу:

  1. Установить содержимое поля blogDescription в поле описания
  2. Удалить поле blogDescription

Так моя строка будет выглядеть так:

<Blog description="bla bla bla" date="2010-10-10"/>

Я не знаю, какое регулярное выражение я могу использовать, я получаю только строку с:

"^<(Blog) .*"

И я удаляю поле blogDescription с помощью:

" blogDescription="

Но я незнать, как поместить значение blogDescription в значение описания.

Ответы [ 3 ]

2 голосов
/ 14 сентября 2011

Если вы уже работаете с XML, который правильно отформатирован, а не создаете парсер самостоятельно с помощью регулярных выражений, почему бы просто не использовать один из доступных вам парсеров XML? Есть много доступных для этого.

Смотрите этот связанный вопрос: Разбор XML в Java

1 голос
/ 14 сентября 2011

вы можете использовать так:

String str = "<Blog blogDescription=\"bla bla bla\" description=\"\" date=\"2010-10-10\"/>";
System.out.println(str.replaceAll("blogDescription=\"([^\"]+)\"\\s+description=\"[^\"]*\"",
            "description=\"$1\""));

. Я не знаю, есть ли в строке новая строка.это не будет работать, если у вас есть одна новая строка в строке, например: blogDescription = "bla \ nbla" \ n description =;

1 голос
/ 14 сентября 2011
    String val = "<Blog blogDescription=\"bla bla bla\" description=\"\" date=\"2010-10-10\"/>";
    String regex = "^<Blog (blogDescription=\"[^\"]*\"\\s+).*";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(val);
    matcher.matches();

    MatchResult result = matcher.toMatchResult();
    System.out.println(result.group(1));
    String resultString = val.replace(result.group(1), "");
    System.out.println(resultString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...