正如Robert H在評論中提到的那樣,您可能比使用正則表達式更好地使用String.Replace()。如果你想成爲真正明確的,我會做,雖然與正則表達式(如果你真的需要它)就是其中分爲三個不同的語句,使你打電話
Regex.Replace(yourString, [patern for A=], "page/");
Regex.Replace(yourString, [patern for B=], "/");
Regex.Replace(yourString, [patern for C=], "true");
你在做什麼,首先爲每個模式調用Regex.Match()
以驗證輸入中存在的模式。那麼,如果它丟失了,你可以跳過這個替換。
因此,這應該爲你工作:注意:檢查完成沒有錯誤,用「原樣」風險自擔
string input = "A=xxx&B=yyy&C=1";
string input2 = "A=xxx&B=yyy";
if(Regex.Match(input, "A=").Success) input = Regex.Replace(input, "A=", "page/");
if(Regex.Match(input,@"\&B=").Success) input = Regex.Replace(input, @"\&B=", "/");
if(Regex.Match(input,@"\&C=1").Success) input = Regex.Replace(input, @"\&C=1", "/true");
if(Regex.Match(input2, "A=").Success) input2 = Regex.Replace(input2, "A=", "page/");
if(Regex.Match(input2,@"\&B=").Success) input2 = Regex.Replace(input2, @"\&B=", "/");
if(Regex.Match(input2,@"\&C=1").Success) input2 = Regex.Replace(input2, @"\&C=1", "/true");
Console.WriteLine(input); //Output = page/xxx/yyy/true
Console.WriteLine(input2); //Output = page/xxx/yyy
使用普通的c#代碼而不是正則表達式會更簡單(也更清晰)。 – 2010-08-10 15:03:39