2014-11-20 4 views
1

Я ищу регулярное выражение для удаления всех специальных символов из строки, кроме пробелов. И, возможно, замените все многопротокольные пробелы одним пробелом.Удаление специальных символов из строки, кроме пробелов

Например "[один @! Два три-четыре]" должен стать "один два три-четыре"

Я попытался с помощью Str = Regex.Replace (strTemp, «^ [-_, A-Za -z0-9] $ "," ") .Trim(), но он не работает. Я также попытался немного больше, но они либо избавиться от пробелов или не заменить все специальные Charaters

+0

Как насчет' one # two' - это будет заменено на 'one two' или 'onetwo'? – usr2564301

ответ

4
[ ](?=[ ])|[^-_,A-Za-z0-9 ]+ 

Try this.See demo.Replace по empty string .Увидь демо.

http://regex101.com/r/lZ5mN8/69

+0

Спасибо! Он не заботится о дополнительных пространствах, но работает отлично, иначе – ElenaDBA

+0

@ElenaDBA попробуйте сейчас. Позаботьтесь о нескольких spcaes. – vks

+0

Это здорово! Благодаря! – ElenaDBA

0

использовать регулярное выражение [^ \ ш \ S], чтобы удалить все, кроме слов и пробелов специальных символов, а затем заменить:

Regex.Replace ("[один @ два три- 4] "," [^ \ w \ s] "," "). Замените (" "," ") .Trim

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