2011-11-14 8 views
1

Предположим, у меня есть специальные токены, такие как [DOT], [COMMA] и тому подобное. Они могут встречаться где-то в строке. Можно ли создать некоторое регулярное выражение, чтобы оно заменило их пустой строкой, и одно из окружающих белых пространств должно быть уничтожено? Например, «Мистер [DOT] Drubber взял с собой 12« DONG »,« должен стать », мистер Друббер взял с собой 12». Так что этот код не работает:regex заменить необязательными пробелами

string strToFix = "Mr[DOT] Drubber took his 12 [DONG] with him"; 
string templateWords = GetSpecialTokens(); // \[DOT\]|\[COMMA\] etc 
string wrongString = Regex.Replace(strToFix, templateWords, ""); 
//wrongString becomes "Mr Drubber took his 12 with him" 

Или это не возможно построить такие регулярки replcace? Благодарим за внимание.

+0

У вас всегда есть пробелы конкретно на одном конце или в другом, в крайних случаях, где он не с обеих сторон? – Nightfirecat

+0

Хорошая точка. Это зависит. Я теперь даже рассматриваю такие ситуации, как «My [DING] [DONG] строка». – Nickolodeon

ответ

0

Это?

resultString = Regex.Replace(subjectString, @"\[(DOT|DONG)\]", ""); 
Смежные вопросы