0

次の正規表現 (オンラインで見つけたもの) を使用して、HTML ページ内の URL を取得しています。

        Regex regex = new Regex(@"url\((?<char>['""])?(?<url>.*?)\k<char>?\)");

以下の HTML では問題なく動作します。

<div style="background:url(images/logo.png) no-repeat;">UK</div>

ただし、HTML ページに次の Javascript が含まれている場合、必要以上のものが返され、「destpage」が返されます

function buildurl(destpage) 

コロンを含めるために次の正規表現を試しましたが、無効のようです

:url\((?<char>['""])?(?<:url>.*?)\k<char>?\)

どんな助けでも大歓迎です。

4

2 に答える 2

3

すべての URL を取得するには、正規表現の代わりにHtmlAgilityPackを使用します。例のページから

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{

}

それを拡張して、たとえば、 を使用//@styleしてノードを取得し、styleそれらを反復処理して値を抽出することにより、スタイルの URL を取得できurlます。

于 2013-08-28T15:01:10.263 に答える
0

コロンのみを先頭に追加します。

:url\((?<char>['""])?(?<url>.*?)\k<char>?\)

2 番目の " url" は、そのグループの名前です。

于 2013-08-28T15:10:09.170 に答える