2

我正在尝试使用正则表达式将给定文本中的现有 url 替换为新 url。我似乎没有得到任何匹配我正在使用的正则表达式模式:

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">";

有人可以帮我写一个正确的模式来找到如下所示的网址:

"<A href=\"http://domain/page.asp?id=38957&amp;oid=2497&amp;type=JPG\">"

下面是我的测试代码,它找不到我正在使用的模式的任何匹配项:

string result = string.Empty;

string sampleText = "<A href=\"http://domain/page.asp?id=38957&amp;oid=2497&amp;type=JPG\"><U>Click here for Terms &amp; Conditions...</U></A>";

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">";
        Regex regEx = new Regex(regex, RegexOptions.IgnoreCase);

result= regEx.Replace(text, "<a href=\"/newPage/Index/$1&opid=$2)\">");
4

1 回答 1

1

一切看起来都很好,除了它是正则表达式.?的特殊字符,所以它们需要被转义才能被视为文字。所以你的表达:

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">";

需要是:

string regex = "<a href=\"http://domain/page\\.asp\\?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">";

.注意和前面的反斜杠?

于 2012-09-06T12:51:41.557 回答