2013-12-06 2 views
5

Как заменить более чем пробел в строке специальным символом в C#?Как заменить более чем пробел в строке с некоторым специальным символом в C#

У меня есть строка, как

Hi I am new here. Would you please help me? 

Я хочу выход как

Hi I$am new$here. Would$you$please help$me? 

Я попытался

string [email protected]"Hi I am new here. Would you please help me?"; 
string line1 = Regex.Replace(line,@"[\s\s]+","$"); 
Console.WriteLine(line1); 

, но я получаю выход в

Hi$I$am$new$here.$Would$you$please$help$me? 

Не могли бы вы рассказать мне, где я ошибаюсь?

ответ

6

Вы должны указать, чем вы хотите больше, чем два ({2,}) пробельные символы (\s):

string line1 = Regex.Replace(line,@"\s{2,}","$"); 

или только более двух пространств ([ ]):

string line1 = Regex.Replace(line,@"[ ]{2,}","$"); 

Примечание: [\s\s]+ означает: одна или несколько групп символов, указанных в [], так как \s удваивается, это просто означает: on e или более символа пробела.

1

Попробуйте это регулярное выражение

[\s]{2,} 

, который идет в коде как:

string line1 = Regex.Replace(line,@"[\s]{2,}","$"); 

Here is a rubular showing this

2

Вы не были далеки от правильного решения. Самое простое исправление для вашего кода:

string line1 = Regex.Replace(line,@"\s\s+","$"); 
Смежные вопросы