Извлечение пар ключ-значение с помощью регулярного выражения Java - PullRequest
0 голосов
/ 14 марта 2012

У меня есть строка в следующем формате: <element>Key:Value</element>

Подобные строки добавляются друг к другу для создания составной строки, поэтому, если есть три строки, я бы имел следующий формат: <element>Key:Value</element><element>Key:Value</element><element>Key:Value</element>

Между двумя элементами нет символов.

Я хочу написать выражение регулярного выражения, чтобы я мог извлечь пары ключ-значение и поместить их в HashMap. Часть с отображением проста, но я не знаю, как сделать регулярное выражение.

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Да, как уже упоминалось, парсер XML, вероятно, был бы более уместным здесь, но если вы хотите использовать регулярное выражение:

    String str = "<element>Key1:Value1</element><element>Key2:Value2</element><element>Key2:Value2</element>";
    final Pattern p = Pattern.compile("<element>(.*?):(.*?)</element>");

    Matcher m = p.matcher(str);
    while (m.find()) {
        System.out.print("Key=" + m.group(1));
        System.out.println("; Value=" + m.group(2));
    }
2 голосов
/ 14 марта 2012

Не делайте этого с регулярным выражением, используйте реальный анализатор XML и извлеките содержимое элементов erm элемента и используйте для этого регулярное выражение или простой string.split (":")

Как,

List<XMLElements> els = XMLParser.parse(yourXmlFile); 
then for each XMLElement is element in els element.split(":") and take [0] for key and [1] for value.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...