2

正規表現を使用して、指定されたテキストの既存の URL を新しい URL に置き換えようとしています。私が使用している正規表現パターンに一致するものがないようです:

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

誰かが次のような URL を見つけるための正しいパターンを書くのを手伝ってくれませんか?

"<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 に答える