C# 查找并用正则表达式替换特定的数字

C# 查找并用正则表达式替换特定的数字,c#,regex,C#,Regex,我有以下字符串 string absoluteUri = "http://localhost/asdf1234?$asdf=1234&$skip=1234&skip=4321&$orderby=asdf" 在这个字符串中,我想将“$skip=1234”替换为“$skip=1244” 我尝试了以下正则表达式: Regex.Replace(absoluteUri, @"$skip=\d+", "$skip=1244"); 不幸的是,这不起作用。我做错了什么 输出应为: "

我有以下字符串

string absoluteUri = "http://localhost/asdf1234?$asdf=1234&$skip=1234&skip=4321&$orderby=asdf"
在这个字符串中,我想将“$skip=1234”替换为“$skip=1244”

我尝试了以下正则表达式:

Regex.Replace(absoluteUri, @"$skip=\d+", "$skip=1244");
不幸的是,这不起作用。我做错了什么

输出应为:

"http://localhost/asdf1234?$asdf=1234&$skip=1244&skip=4321&$orderby=asdf"

$
是正则表达式中的一个特殊字符(它是锚点)。您需要在表达式和替换字符串中转义它,但它们的转义方式不同

在正则表达式中,使用
\
对其进行转义,但在替换中,通过添加另一个
$
对其进行转义:

Regex.Replace(absoluteUri, @"\$skip=\d+", "$$skip=1244");

$
是正则表达式中的一个特殊字符(它是锚点)。您需要在表达式和替换字符串中转义它,但它们的转义方式不同

在正则表达式中,使用
\
对其进行转义,但在替换中,通过添加另一个
$
对其进行转义:

Regex.Replace(absoluteUri, @"\$skip=\d+", "$$skip=1244");
我不能补充评论。 只是小小的修正。需要做:

absoluteUri = Regex.Replace(absoluteUri, @"\$skip=\d+", "$skip=1244");
我不能补充评论。 只是小小的修正。需要做:

absoluteUri = Regex.Replace(absoluteUri, @"\$skip=\d+", "$skip=1244");

太好了,谢谢!带\的逃逸成功了。我不知道为什么,但它可以使用替换字符串,也可以不转义替换字符串。可能是因为
$s
不是有效的替换字符串,它会忽略它。我建议在替换中使用
$$
,即使在这种情况下不是绝对必要的。太好了,谢谢!带\的逃逸成功了。我不知道为什么,但它可以使用替换字符串,也可以不转义替换字符串。可能是因为
$s
不是有效的替换字符串,它会忽略它。我建议在替换中使用
$$
,即使在这种情况下不是绝对必要的。