Замена дефисов в строке запроса с помощью регулярного выражения - PullRequest
2 голосов
/ 13 ноября 2009

Из-за ограничений модуля URLRewrite я заменяю все пробелы в значении строки запроса дефисами. На стороне сервера я хочу заменить дефисы обратно на пробел, что нормально.

Однако, если в строке запроса есть дефис (до того, как я кодирую значение), когда я декодирую строку запроса, он удаляет ВСЕ дефисы, включая тот, который должен быть там.

Итак, мой вопрос: как мне достичь следующего с помощью регулярного выражения / регулярного выражения в C # ....

Пример 1
.................................
Строка запроса: "a-search-term"
Расшифрованное значение: «поисковый термин»

Пример 2
.................................
Строка запроса: "a-дефисный --- поиск"
Расшифрованное значение: "дефис - поиск"

Кроме того, я открыт для предложений о том, как справиться с чем-то вроде ...

Querystring: "для обсуждения" Декодированное значение: «вверх для обсуждения»

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 13 ноября 2009

Попробуйте Server.UrlEncode ("критерий поиска"), не нужно декодировать, asp.net получит правильное значение при чтении

0 голосов
/ 13 ноября 2009

Не могли бы вы заменить простую строку?

Это должно работать для ваших основных сценариев, но это не лучшее решение:

string newstring = yourstring.Replace("-", " ").Replace("   ", " - ").Replace("  ", " -");
0 голосов
/ 13 ноября 2009

В этом случае попробуйте функции escape / unescape

http://www.webtoolkit.info/javascript-url-decode-encode.html

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