Je suis en train de dépouiller et de remplacer une chaîne de texte de la manière la plus élégante possible:Expression régulière en Java
Avec la solution que j'ai /element\s*\{"([^"]+)"\}\s*{text\s*{\s*}\s*({[^}]*})/
text.replaceAll("element\\s*\\{\"([^\"]+)\"}\\s*\\{text\\s*\\{\\s*}\\s*(\\{[^}]*})", "<$1> $2"));
Utilisé sur le texte ci-dessous:
element {"item"} {text { } {$i/child::itemno} text { } {$i/child::description} text { } element {"high_bid"} {{max($b/child::bid)}} text { }}
DONNE:
<item> {$i/child::itemno} text { } {$i/child::description} text { } element {"high_bid"} {{max($b/child::bid)}} text { }}
Quand je suis en train de réaliser:
<item>{$i/child::itemno}{$i/child::description}<high_bid>{fn:max($b/child::bid)}</high_bid></item>
Je pense au contraire, j'en ai besoin pour être plus gourmand. Il supprime uniquement le premier élément et les premières instances de texte. – Pablo
Bien au contraire. Voir ma clarification dans la réponse. Il semble seulement qu'il n'a pas remplacé les dernières occurrences parce qu'ils ont été aspiré dans le premier texte. Après cela, plus aucun remplacement ne se produit parce que les remplacements ne se produisent pas sur le texte remplacé. –
Puis-je demander quel était le but de me dire d'ajouter '?' Mon but est de scanner la chaîne entière pour n'importe quelle instance de l'un ou l'autre groupe – Pablo