J'ai une chaîne, qui ressemble à ceci:Briser une chaîne en plusieurs parties sur la base Motif
a[abcdefghi,2,3,jklmnopqr]
Le début « a
» est fixe et qui ne changent pas, mais le contenu entre crochets est et suivre un motif. Ce sera toujours une chaîne alphabétique, éventuellement suivie de chiffres séparés par des virgules ou plus de chaînes et/ou de chiffres. Je voudrais être capable de le diviser en morceaux de la chaîne et tous les nombres qui la suivent jusqu'à ce que le "]
" ou une autre chaîne est rencontrée.
explique sans doute par des exemples et attendus résultats idéal:
a[abcdefghi] -> "abcdefghi"
a[abcdefghi,2] -> "abcdefghi,2"
a[abcdefghi,2,3,jklmnopqr] -> "abcdefghi,2,3" and "jklmnopqr"
a[abcdefghi,2,3,jklmnopqr,stuvwxyz] -> "abcdefghi,2,3" and "jklmnopqr" and "stuvwxyz"
a[abcdefghi,2,3,jklmnopqr,1,9,stuvwxyz] -> "abcdefghi,2,3" and "jklmnopqr,1,9" and "stuvwxyz"
a[abcdefghi,1,jklmnopqr,2,stuvwxyz,3,4] -> "abcdefghi,1" and "jklmnopqr,2" and "stuvwxyz,3,4"
Idéalement une chaîne malformée seraient pris en partie (mais cela est un plus agréable):
a[2,3,jklmnopqr,1,9,stuvwxyz] -> "jklmnopqr,1,9" and "stuvwxyz"
Je suis en utilisant Javascript et je me rends compte qu'une regex ne m'amènera pas tout le chemin à la solution que je voudrais mais cela pourrait être une grande aide. L'alternative est de faire beaucoup d'analyse syntaxique de chaînes que je peux faire mais ne semble pas être la meilleure réponse.
Conseils, conseils appréciés.
MISE À JOUR: Oui, je voulais dire alphametcial (A-Za-z) au lieu d'alphanumérique. Edité pour refléter cela. Merci de me le faire savoir.
La première étape ne semble pas fonctionner. En utilisant javascript, cela renvoie null: /a\\[([^[\\]])\\]/.exec("a[abcdefghi] ") – donohoe
@michael: Désolé, j'avais oublié un' * 'dans Là. Devrait être réparé maintenant. –