Я хочу написать метод в Java, который разбивает теги String по XML следующим образом:
"Lorem ipsum <b>dolor</b> sit amet consetetur <b>diam</b> nonumy."
Должен возвращать массив:
["Lorem ipsum ", "<b>dolor</b>", " sit amet consetetur ", "<b>diam</b>", " nonumy."]
Это должно работать для каждого XML-тега, а также для закрывающих тегов, таких как <element/>
.
Есть ли библиотека, которая делает что-то подобное простым способом?
Благодарю!
Использование lookaround в вашем расколе должно сделать трюк:
String splits[] = input.split("\\s+(?=<b>)|(?<=</b>)\\s+");
Пример:
String input = "Lorem ipsum <b>dolor</b> sit amet consetetur <b>diam</b> nonumy.";
for(String s : input.split("\\s+(?=<b>)|(?<=</b>)\\s+")){
System.out.println(s);
}
Если вы хотите сохранить пространство в целочисленном массиве, удалите \\s+
из регулярного выражения.
<element/>
и с атрибутами.<=...
) поддерживает только фиксированную длину.