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
不是有效的替换字符串,它会忽略它。我建议在替换中使用$$
,即使在这种情况下不是绝对必要的。