J'ai la chaîne suivante, qui sépare du tuyau " | code>".
var value = Regex.Replace(sample, " *, *", ",");
3 Réponses :
| code> est un char et un moyen spécial
ou code> dans regex afin qu'il doit être échappé:
\ | code>
Je pense que cette regex est un peu plus élégante (\ s)? \ | (\ S)? Code> Testez-le ici
à l'aide de LINQ,
using System; using System.Linq; using System.Collections.Generic; string sample = "SVC1 | SVC2 | SVC3 | SVC1 "; string result = sample .Split('|') //Split by pipe .Aggregate(string.Empty, (x, y) => x + y.Trim()+'|'); //Trim white spaces and concatenate with previous string Console.WriteLine(result); //Print result
Toute raison spécifique du Downvote? @ Flydog57 Ma solution Supprimer les espaces Seulement B> avant et après tuyau. Si vous êtes Downvoter, pouvez-vous indiquer votre fratique pour la Downvote
string output = string.Join('|', sample.Split(new char[] { ' ', '|' }, StringSplitOptions.RemoveEmptyEntries));
Cela se scindera sur tous les espaces, pas seulement ceux de chaque côté du tuyau. L'OP aurait dû inclut au moins un exemple d'une sous-chaîne qui inclut un espace intégré, car sa question était "Supprimer les espaces i> b> avant et après le tuyau"
Soit vous devez utiliser la garniture () avant de créer une mauvaise sortie ou de la scission et d'ignorer les espaces: String [] Sortie = INPUT.SPLIT (Nouveau Char [] {'' ',' | '}, StringSplitoption.RemoVeTyries). Vous ne devez pas utiliser RegEx lorsqu'il existe des méthodes de chaîne beaucoup plus efficaces pour effectuer la tâche.