正如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