1
逃生繩的部分用字符在C#中我有一個字符串,如這樣的:使用正則表達式
/one/two/three-four/five six seven/eight/nine ten eleven-twelve
我需要先用空格代替破折號,然後能夠逃脫有任何單詞分組以「#」符號它們之間的空間,所以上面的字符串應該是:
/one/two/#three four#/#five six seven#/eight/#nine ten eleven twelve#
我有以下的擴展方法,這對於兩個詞的偉大工程,但我怎樣才能讓它在任何數量的單詞的工作。
public static string QueryEscape(this string str)
{
str = str.Replace("-", " ");
return Regex.Replace(str, @"(\w*) (\w*)", new MatchEvaluator(EscapeMatch));
}
private static string EscapeMatch(Match match)
{
return string.Format("#{0}#", match.Value);
}
所以我想我真的需要使用合適的正則表達式,考慮到幫助那些
- 可能有任意數量的空格
- 有可能會或可能不會是一個尾部斜槓(」 /「)
- 考慮到單詞被分組在斜線之間,除了上面的#2之外。
- 破折號是非法的,需要替換爲空格
預先感謝您對我們的支持。