Regex.Split () sur la virgule, l'espace ou la chaîne délimitée par des points-virgules
Je suis en train de découper une chaîne qui peut être soit une virgule, un espace ou un point-virgule delimitted. Il pourrait également contenir un espace ou des espaces après chaque delimitter. Par exemple
22222,11111,23232
OR
22222, 11111, 23232
OR
22222; 11111; 23232
OR
22222 11111 23232
Chacun de ces produire un tableau de trois valeurs ["22222","11111","23232"]
Pour l'instant j'ai var values = Regex.Split("22222, 11111, 23232", @"[\\s,;]+")
mais cela produit un tableau avec les deuxième et troisième valeurs, y compris l'espace(s) comme suit:
["22222"," 11111"," 23232"]
source d'informationauteur bflemi3
Vous devez vous connecter pour publier un commentaire.
Vous avez deux possibilités:
Regex.Split
String.Split
Dans ce cas, vous voulez diviser votre chaîne par des caractères délimiteurs.
String.Split
a été créé dans ce but spécial. Cette méthode sera plus rapide queRegex.Split
.Vous utilisez un
@
symbole de votre chaîne, de sorte que le"\"
est interprété comme un littéral slash. Si la classe de votre personnage est en fait de la lecture comme"\"
un"s"
un","
ou un";"
. Supprimer les slash et il devrait fonctionner comme vous le souhaitez:cela a fonctionné pour moi
Également vérifier la réponse ci-dessous, si vous avez vraiment besoin est de découper une chaîne basée sur quelques char délimiteurs - chaîne.split est probablement une meilleure solution
Pour interpréter "je suis en train de découper une chaîne qui peut être soit une virgule, un espace ou un point-virgule délimitée. Il pourrait également contenir un espace ou des espaces après chaque séparateur", littéralement, essayez:
Ce qui a la propriété de séparateurs consécutifs (à l'exception de l'espace blanc) pas être traités comme un seul séparateur.
Mais si vous voulez tous les séparateurs consécutifs à être traités comme un seul, vous pourriez aussi bien le faire:
Bien sûr, dans ce cas,
string.Split
est une option plus simple, comme d'autres l'ont indiqué.Essayer cette Regex modèle:
Pour exemple de texte:
Voir la démo.