замена нескольких одинаковых символов одним в строке - PullRequest
0 голосов
/ 22 мая 2009

У меня есть следующая строка:

dim str as string = "this       is    a string      .   "

Я хочу идентифицировать эти несколько пробелов и заменить их одним пробелом. использование функции замены заменит все из них, так как правильно выполнить такую ​​задачу?

Ответы [ 4 ]

2 голосов
/ 22 мая 2009
import System.Text.RegularExpressions            

dim str as string  = "This is a      test   ."
dim r as RegEx = new Regex("[ ]+")
str = r.Replace(str, " ")
2 голосов
/ 22 мая 2009

Используйте класс Regex для сопоставления с шаблоном «один или несколько пробелов», а затем замените все эти экземпляры одним пробелом.

Вот код C # для этого:

Regex regex = new Regex(" +");
string oldString = "this       is    a string      .   ";
string newString = regex.Replace(oldString, " ");
1 голос
/ 22 мая 2009

Я бы использовал модификатор \ s +, который легче читать

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);

Или в 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)
0 голосов
/ 22 мая 2009

Используйте регулярное выражение. в соответствии с предложением этого другого пользователя SO here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...