Séparer une chaîne à l'aide de Regex en Java
Quelqu'un serait-il en mesure de m'aider avec quelques regex.
Je veux diviser la chaîne de caractères en un nombre, une chaîne nombre
"810LN15"
1 méthode nécessite 810 être retournés, l'autre exige de LN et de l'autre doit retourner 15.
La seule vraie solution c'est à l'aide de regex comme les numéros de croissance en longueur
Ce regex puis-je utilisé pour accueillir cette?
source d'informationauteur Damien
Vous devez vous connecter pour publier un commentaire.
String.split
ne vous donne pas le résultat souhaité, qui je pense serait "810", "LN", "15", car il faudrait chercher un jeton de fractionner et dépouillent le jeton.Essayer
Pattern
etMatcher
au lieu de cela, à l'aide de cette regex:(\d+)|([a-zA-Z]+)
qui correspondent à une séquence de chiffres et de lettres et obtenir distinct nombre/texte de groupes (c'est à dire "AA810LN15QQ12345" les groupes "AA", "810", "LN", "15", "QQ" et "12345").Exemple:
En Java, comme dans la plupart des regex saveurs (Python étant une exception notable), le
split()
regex n'est pas nécessaire d' consommer tous les caractères lorsqu'il trouve une correspondance. Ici j'ai utilisé lookaheads et lookbehinds pour correspondre à n'importe quelle position qui a un chiffre d'un côté et un chiffre sur l'autre:de sortie:
(\\d+)([a-zA-Z]+)(\\d+)
devrait faire l'affaire. Le premier groupe de capture sera le premier numéro, le deuxième groupe sera le lettres entre les deux, et le troisième groupe de capture sera le deuxième nombre. Les doubles barres obliques inverses sont pour java.Cela vous donne la chose exacte que vous les gars sont à la recherche pour