7
votes

Java - Split String en utilisant une expression régulière

J'ai besoin de diviser une chaîne où il y a une virgule, mais cela dépend de l'endroit où la virgule est placée.

comme exemple P>

Considérez les éléments suivants: P>

C=75 

user_is_active(A,B) 

user_using_app(A,B)

D=78


0 commentaires

3 Réponses :


12
votes

Si vous n'avez pas plus d'un niveau de parenthèses, vous pouvez faire une scission sur une virgule qui n'est pas suivie d'un de fermeture) avant une ouverture (: Pré> xxx


3 commentaires

Cela fonctionne parfaitement! Je ne pense pas que j'aurai plus d'un niveau de parenthèses! Merci! :RÉ


+1 et si la construction (a, b) ne sera jamais une seule virgule à l'intérieur, vous pouvez accélérer de manière spectaculaire en ajoutant une virgule au [^ (^ (code> expression, c'est-à-dire [^ (,] * .


Dans mon cas, je pourrais avoir quelque chose (A, B, C) de sorte qu'il ne s'appliquerait pas mais c'est bon de savoir! Merci!



0
votes

Considérons en utilisant un générateur d'analyseur pour analyser ce type de requête. Par exemple: javacc ou antlr


0 commentaires

0
votes

Autre alternative, si vous avez besoin de plus d'un niveau de parenthèses, vous pouvez créer un petit analyseur à cordes pour analyser le caractère de chaîne par caractère.


0 commentaires