Я пытаюсь удалить и заменить текстовую строку, которая выглядит следующим образом, самым элегантным способом:
element {"item"} {text {
} {$i/child::itemno}
Чтобы выглядеть как:
<item> {$i/child::itemno}
Следовательно, удаляем текст элемента, подставляя его фигурные скобки и удаляя текст и сопровождающие его фигурные скобки. Эти шаблоны могут быть встречены несколько раз. Мне лучше использовать Java java.util.regex.Pattern ИЛИ простой replaceAll ИЛИ org.apache.commons.lang.StringUtils?
Спасибо за ответы:
Теперь у меня есть следующее, но я не уверен относительно количества обратных слешей, а также того, как завершить последнюю замену, которая использует мою группу (1), и заменяет ее на <в начале и> в конце:
Pattern p = Pattern.compile("/element\\s*\\{\"([^\"]+)\"\\}\\s*{text\\s*{\\s*}\\s*({[^}]*})/ ");
// Split input with the pattern
Matcher m = p.matcher("element {\"item\"} {text {\n" +
" } {$i/child::itemno} text { \n" +
" } {$i/child::description} text {\n" +
" } element {\"high_bid\"} {{max($b/child::bid)}} text {\n" +
" }} ");
// For each instance of group 1, replace it with < > at the start and end