2015-06-12 1 views
0

В моем блоке ниже, я triyng, чтобы заменить слова, заканчивающиеся на -ing статическим текстом «------». Однако это, похоже, не работает и бросает - повсюду. Что я делаю не так?Как заменить слова, заканчивающиеся на -ing статической строкой

string ingString = "I like programming, running, jobs and swimming."; 
string ingWords = @"[^\\b\\w+(ing\\b)$]"; 
string staticLine = "------"; 
replaceString = Regex.Replace(ingString, ingWords, staticLine); 

Он должен читать «Мне нравится ------, ------, jobs and ------.»

Thanks

+0

Разделите строку на слова, найдите слова со своим запросом, замените их на прямую и затем преобразуйте строку [] обратно в строку. –

+0

Я посмотрю, смогу ли я понять, как это сделать Афзааль, спасибо. – BruceyBandit

+0

Как насчет чего-то простого, например '@" \ b \ w + ing \ b "' – sln

ответ

2

Это будет делать это:

string ingString = "I like programming, running, jobs and swimming."; 
string ingWords = @"\w+ing\b"; 
string staticLine = "------"; 
Console.WriteLine(Regex.Replace(ingString, ingWords, staticLine)); 

Выход:

I like ------, ------, jobs and ------. 

Теперь, отвечая на ваш вопрос:

Что я делаю неправильно?

Вы регулярный выражение:

[^\\b\\w+(ing\\b)$] 

При использовании кронштейнов [...] он представляет собой набор символов, так что двигатель пытается соответствовать всему caracters внутри набора, то почему его замена много символов с -----

2

Ваше регулярное выражение неправильное. Попробуйте следующее: \w*ing\b

Взято из другого question, но модифицировано в соответствии с вашими потребностями.

+0

Продвиньте меня, спасибо – BruceyBandit

Смежные вопросы