2009-08-30 7 views
1

J'essaye de créer une regex pour marquer une chaîne. Un exemple de la chaîne estComment faire pour supprimer la regex espace blanc et espace uniformément pendant Split

ExeScript.ps1 $ 1, $ 0,% 1,% 3

Ou peut-être tapé négligemment en tant que. ExeScript.ps1               $ 1, $ 0,% 1,% 3`

J'utilise une simple chaîne de regex.

Regex RE = new Regex(@"[\s,\,]"); 
return (RE.Split(ActionItem)); 

je reçois un tas de zéros entre le script1.ps1 et le 1 $ Lorsqu'il est régulièrement espacées, comme dans le premier exemple, je reçois pas d'espace entre le script1.ps1 et 1 $.

Qu'est-ce que je fais mal. Comment puis-je supprimer les espaces et m'assurer que chaque cellule du tableau a une valeur qui est maintenant un espace.

Bob.

Répondre

2

Essayez cette regex:

Regex RE = new Regex(@"[\s,\,]+"); 

Le + fait délimiteur "un ou plusieurs" des éléments précédents. Cela peut aider, mais il ne détectera pas la situation de deux virgules (cela l'interpréterait comme un délimiteur, ce qui peut ne pas être ce que vous voulez). Une autre possibilité serait:

Regex RE = new Regex(@"\s*,\s*"); 

qui est égal à zéro ou plusieurs espaces, suivi d'une virgule, suivie par zéro ou plusieurs espaces.

Vous pouvez également décider comment vous voulez gérer les entrées telles que:

foo, ,bar

que vous pourriez voir une liste de trois articles, dont le second est un espace unique.

+0

Merci Greg, Je l'avais presque, mais le plus était à l'intérieur des crochets. Je déteste regex. Cela fonctionne parfaitement, même corrige plusieurs virgules Bob. –

Questions connexes