
VB.NETなのですが、
htmlソースを変数に入れて、その中からURLを抽出して、
1つずつ保存していくという動作をさせたいのですが、
どうしてもURLを一つずつ取得することができません。
Dim r As Regex
Dim m As Match
Dim JpgFile As String
r = New Regex("http://.+\.jpg")
m = r.Match(html)
If m.Success = False Then
Else
JpgFile = m.Value
ここで1つずつ保存
End If
現在、ここまで出来たのですが、
これだと、変数html内に複数のjpgのURLがあると
最初のURLの1文字目から、最後のURLの末尾までを一度に
取得してしまいます。
URLの文字列はhttp://で始まっていて、終わりは・・・.jpg"
になっていたり、"がなかったりします。
>で閉じる前に同じタグ内にWidthなどサイズを指定している場合もあります。
また、上記のようにタグ内に書かれていなくて、クリッカブルリンクになっていないURLの場合もありそれも取得したいです。
一つずつ取得する方法や一度に配列に読み込む方法などがありましたら、
ご教示頂けると助かります。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
> URLの文字列はhttp://で始まっていて、終わりは・・・.jpg"
この条件だけ満たすなら、
New Regex("http://.+\.jpg")
正規表現の繰り返し指定(*とか+など)はできるだけ長いマッチを
とろうとします。このため、.+ が複数のURLを食ってしまっている
というわけです。
#085 正規表現の落とし穴
http://www.ne.jp/asahi/futohen/sankaku/h085.htm
今回の場合とりあえず正規表現を "http://.+?\.jpg" にすればいいです。
量指定子
http://msdn2.microsoft.com/ja-jp/library/3206d37 …
htmlテキスト丸ごと与えて、その中からすべて取り出したいのなら
Regex.Matchesメソッドを使えば一発でできます。
一つずつ処理するならイテレータを、一度に配列に取り出したいのなら
CopyToメソッドを使えばいいでしょう。
Regex.Matches メソッド (String) (System.Text.RegularExpressions)
http://msdn2.microsoft.com/ja-jp/library/e7sf90t …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
onClickで関数呼出し後に、結果...
-
[VBA]GetSaveAsFilenameメソッ...
-
ウィンドウを最前面にできません
-
引数は省略できません。とのコ...
-
【sendkeysメソッドが動かずに...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
エラーの意味を
-
execute()
-
VBPをダブルクリックするとたま...
-
Excel VBA シェイプの原型のサ...
-
InetAddress#getHostNameについ...
-
VBA/FIND関数を使っての先頭文...
-
0歳児の指しゃぶりに関して
-
VBA コピーが出来ません…!
-
You Tubeの音楽をMac Book Proへ
-
タブコントロールの問題 (VB)
-
worksheets & rows メソッドは...
-
C#で右からnカラム目に文字を挿...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報