0

リンクを抽出しようとしているさまざまなHTMLドキュメントがあります:(1)他のhtmlドキュメント、(2).jpg、.png、.bmpなどの画像ファイル。これを行うには正規表現が必要ですが、理解できないようです。

各htmlページには、次のようなコードが含まれます。


IMG style = "MARGIN-BOTTOM:20px; MARGIN-LEFT:20px" align = right src = "images / sample001.jpg">

IMG style = "MARGIN-BOTTOM:25px; MARGIN-LEFT:25px" align = right src = "images / sample002.png">

IMG style = "MARGIN-BOTTOM:20px; MARGIN-LEFT:20px" align = right src = "images / sample003.bmp">

href = "javascript:parent.POPUP({url:'testDoc001.htm'、type:'shared'、width:600、height:645})">

href = "javascript:parent.POPUP({url:'testDoc002.html'、type:'shared'、width:700、height:712})">


例として、正規表現は上記のHTMLで動作し、結果の配列を生成します。

images / sample001.jpg

images / sample002.png

images / sample003.bmp

testDoc001.htm

testDoc002.html

誰かが私を助けることができますか?本当にありがとう。

4

3 に答える 3

1

正規表現を使用してHTMLを解析しようとするときに発生するフラストレーションやバグを自分で保存してください。HTMLAgilityPackのようなHTMLパーサーを使用します。

于 2012-04-13T20:44:36.857 に答える
0

Perlで

my $x = "your html";

#$1 - is a first group in match - (.+\.(jpg|png))
while ($x =~ /<img .* src="(.+\.(jpg|png))"/ig) {
    print "$1\n";
}

while ($x =~ /<a( .)* href=".*url:('|")(.+\.htm(l)?)('|").*/ig) {
    print "$3\n";
}

出力:

images/sample001.jpg
images/sample002.png
testDoc001.htm
testDoc002.html

正規表現<img .* src="(.+\.(jpg|png))"<a( .)* href=".*url:('|")(.+\.htm(l)?)('|").*ほとんどの言語で類似しています。ig検索で大文字と小文字が区別されず、複数の一致があることを定義します

于 2012-04-13T20:40:31.757 に答える
0

たぶん、画像の線に沿ったもの(グループを使用):

IMG[^>]*src="([^"]*)"

そしてポップアップのためにこのようなもの:

url:'([^']*)'
于 2012-04-13T20:18:19.493 に答える