我試圖剝離和替換文本字符串,看起來最優雅的方式可能如下:最優雅的方式來剝離和替換字符串模式
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
對不起,我是新來的正則表達式,如何能這是合併成一條線? – Pablo