2009-05-22 6 views
0

J'ai une chaîne comme suit; Je souhaite identifier ces caractères d'espace multiples et les remplacer par un espace char. l'utilisation de la fonction de remplacement remplacera tous, alors quelle est la bonne façon de faire une telle tâche?en remplaçant plusieurs caractères identiques par un dans une chaîne

+0

Dupe. Découvrez: http://stackoverflow.com/questions/206717/how-do-i-replace-multiple-spaces-with-a-single-space-in-c –

+0

@chris, votez pour fermer en double alors:) –

Répondre

0

Utilisez une expression régulière. comme suggéré par cet autre utilisateur SO here

2
import System.Text.RegularExpressions    

dim str as string = "This is a  test ." 
dim r as RegEx = new Regex("[ ]+") 
str = r.Replace(str, " ") 
2

Utilisez la classe Regex pour correspondre au modèle de « un ou plusieurs espaces », puis remplacer tous les cas avec un seul espace.

Voici le code C# pour le faire:

Regex regex = new Regex(" +"); 
string oldString = "this  is a string  . "; 
string newString = regex.Replace(oldString, " "); 
1

j'utiliser le \ s + modificateur, ce qui est plus facile à lire

public Regex MyRegex = new Regex(
     "\\s+", 
    RegexOptions.Multiline 
    | RegexOptions.CultureInvariant 
    | RegexOptions.Compiled 
    ); 


// This is the replacement string 
public string MyRegexReplace = " "; 

string result = MyRegex.Replace(InputText,MyRegexReplace); 

Ou en VB

Public Dim MyRegex As Regex = New Regex(_ 
     "\s+", _ 
    RegexOptions.Multiline _ 
    Or RegexOptions.CultureInvariant _ 
    Or RegexOptions.Compiled _ 
    ) 


Public Dim MyRegexReplace As String = " " 


Dim result As String = MyRegex.Replace(InputText,MyRegexReplace) 
Questions connexes