通过正则表达式替换查询字符串中的连字符

时间:2009-11-13 16:49:04

标签: c# regex

由于URLRewrite模块的限制,我用连字符替换查询字符串值中的所有空格。 服务器端我想将连字符替换回空格,这很好。

但是,如果查询字符串中有一个连字符(在我对值进行编码之前),当我解码查询字符串时,它会删除所有连字符,包括那个应该存在的连字符。

所以我的问题是,如何使用C#中的Regex / Regex实现以下目标....

例1 .................................
查询字符串:“a-search-term”
解码值:“搜索词”

例2 .................................
Querystring:“a-hyphenated --- search”
解码值:“连字符 - 搜索”

此外,我愿意接受如何处理类似......

的建议

Querystring:“up-for-discussion” 解码值:“up for -discussion”

非常感谢

3 个答案:

答案 0 :(得分:2)

尝试Server.UrlEncode(“搜索词”),无需解码,asp.net会在阅读时获得正确的值

答案 1 :(得分:0)

在这种情况下,请尝试使用escape / unescape函数

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

答案 2 :(得分:0)

你能做一个简单的字符串替换吗?

这应该适用于您的基本方案,但它不是最佳解决方案:

string newstring = yourstring.Replace("-", " ").Replace("   ", " - ").Replace("  ", " -");