Регулярное выражение для удаления специальных символов - PullRequest
1 голос
/ 29 апреля 2010

Я пытаюсь использовать regex.replace для удаления нежелательных символов, но мне нужно учитывать пробелы:

string asdf = "doésn't work?";
string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-"));

возвращает doésntwork вместо doésnt-work

Идеи?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 29 апреля 2010

Ваше регулярное выражение содержит пробел, поэтому пробел удаляется до вызова string.Replace.

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
                                              ^ here

Удалите его из регулярного выражения, и ваш код должен делать то, что вы ожидаете:

string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’\*\?\/\+\|\[\\\\]|\]|\-)";
0 голосов
/ 29 апреля 2010

В вашем регулярном выражении есть пробел, прямо здесь: \’ \*.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...