Découper une chaîne avec un nombre arbitraire des virgules et des espaces
J'ai une Chaîne que je suis en train de tourner dans une liste, mais je reçois des entrées vides.
",A,B,C,D, ,,,"
returns
[, A, B, C, D, , , ,]
Je veux enlever tous les "vides" des virgules:
[A, B, C, D]
Je suis en train
current.split(",+\\s?")
qui ne produit pas le résultat que je souhaite. Ce regex dois-je utiliser à la place?
Quelle langue utilisez-vous?
son langage de programmation java. est-ce important? Je suis en demandant de l'aide juste avec les regex.
Oui, parce que les différentes langues, différentes regex saveurs avec des capacités différentes et de syntaxes
son langage de programmation java. est-ce important? Je suis en demandant de l'aide juste avec les regex.
Oui, parce que les différentes langues, différentes regex saveurs avec des capacités différentes et de syntaxes
OriginalL'auteur Aboutblank | 2013-03-07
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de deux étapes, mais une seule ligne:
L'appel à
replaceAll()
supprime les principaux séparateurs.La division se fait sur n'importe quel nombre de séparateurs.
Le comportement de
split()
signifie qu'une fuite de la valeur à blanc est ignoré, donc pas besoin de la garniture de fuite séparateurs avant le fractionnement.Voici un test:
De sortie:
OriginalL'auteur Bohemian
Vous ne voulez inclure uniquement les quelques espaces dans votre match, mais aussi l'consécutives commata à split sur eux comme une unité:
OriginalL'auteur Bergi
Je voudrais utiliser Splitter dans la Goyave pour cela:
car je trouve cela plus facile à lire que les regex.
OriginalL'auteur Simon Nickerson
Correspondant à caractères autres que des virgules et des espaces est susceptible d'être une solution plus propre:
/[^, ]+/g
Si vous travaillez en Javascript, vous pouvez utiliser la Lodash
_.words
méthode (bravo à eux pour le dessus de regex):https://lodash.com/docs#words
OriginalL'auteur samjewell