Je suis en train de se déshabiller et remplacer une chaîne de texte qui se présente comme suit de la manière la plus élégante possible:La façon la plus élégante pour enlever et remplacer un modèle de chaîne
element {"item"} {text {
} {$i/child::itemno}
ressembler à:
<item> {$i/child::itemno}
Suppression du texte de l'élément en lui substituant ses accolades et en supprimant le texte et ses accolades. Ces modèles peuvent être modifiés plusieurs fois. Suis-je préférable d'utiliser java.util.regex.Pattern de Java OU le simple replaceAll OR org.apache.commons.lang.StringUtils?
Merci pour les reponses:
Je suis maintenant le suivant, mais je ne suis pas sûr que le nombre de barres obliques inverses et aussi comment remplir la substitution finale qui utilise mon groupe (1) et le remplace par < à son début et> à sa fin:
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
Désolé, je suis nouveau à regex, comment Cela peut-il être combiné en une seule ligne? – Pablo