1

我有以下字符串

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

在这个字符串中,我想用 '$skip=1244' 替换 '$skip=1234'

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

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

不幸的是,这不起作用。我究竟做错了什么?

输出应该是:

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

2 回答 2

4

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

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

Regex.Replace(absoluteUri, @"\$skip=\d+", "$$skip=1244");
于 2013-09-26T20:30:28.050 回答
0

我无法添加评论。只是小修。需要做:

absoluteUri = Regex.Replace(absoluteUri, @"\$skip=\d+", "$skip=1244");
于 2013-09-26T20:41:27.007 回答