2015-01-13 3 views
0

У меня есть строка, где я хочу, чтобы удалить какие-либо специальные символы, такие как ~ или * и т.д.Регулярное выражение удаляет лишние пробельные

Я использую регулярное выражение «[] (= []?) | [^ -_, A-Za-z0-9] + "

Тогда я заметил, что наряду со специальными символами он удалил лишние пробелы. Например, если строка имеет пробел между словами, размер которых больше 1, он меняет его на одно пространство. Например, если строка является

~ my test 123 456 

Я хочу my test 123 456 вернулся, но вместо этого я получаю my test 123 456

поэтому я изменил [ ](?=[ ])|[^-_,A-Za-z0-9 ]+ to [ ][^-_,A-Za-z0-9 ]+

но теперь ~ не удаляются из строки. Я получаю ~ my test 123 456

код я использую следующим образом:

line = Regex.Replace(line, "[ ][^-_A-Za-z0-9 ]+", "").Trim() 
+0

один пример не будет достаточно. Опубликовать еще ... –

+0

Что-то не так с 'Regex.Replace (строка," [^ \ w \ s] "," ") .Trim()'? –

ответ

1

Вы могли бы попробовать это,

line = Regex.Replace(line, @"[^-,\w ]", "").Trim() 

DEMO

+0

, но почему мне нужно совместить пробелы? Я просто хочу, чтобы пробелы были проигнорированы и оставлены в покое – ElenaDBA

+0

@ElenaDBA, тогда почему пробелы перед '' 'были удалены. Проверьте ожидаемый результат. –

+0

@AvinashRaj: Я думаю, это потому, что он «подрезал» строку в конце. –

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