回答編集履歴

3 テキスト修正

jun68ykt

jun68ykt score 8930

2015/05/29 12:31  投稿

再びこんにちは。
追記に対しての回答になります。
> <a href="http://ランダムな文字列と数列"><img src="http://img.hoge.com/0000.jpeg"
の「ランダムな文字列と数列」という意図は、つまり「任意のURL」ということでよいでしょうか?
以下、その前提での回答になります。
取り出したいURLをhref属性として持っている<a>は、そのすぐ後に
<img src
が続くというのが条件ならば、マッチする正規表現としては
```lang-ruby
regex = /<a href="(.*)"><img src/
regex = /<a href="([^"]+)"><img src/
```
あたりでいかがでしょうか?(すみませんが、テストコードを書いての検証は
しておりません。)これだと、マッチしたときに
$1
に欲しいURLが入ってきます。
ただ、
・a とhrefとの間は、半角スペース1個とは限らない。
とか
・imgとsrcとの間は、半角スペース1個とは限らない。
・<a>のタグを閉じる側の不等号(>)と、<img>のタグを開く側の不等号(<)との間には
 任意の個数の半角スペースやタブがあるかもしれない。
といった他の諸条件も考えなければいけませんが、そういった拡張も
上記の正規表現を修正していけば対応できるのではないかと思います。
ご参考になれば幸いです。
2 テキスト修正

jun68ykt

jun68ykt score 8930

2015/05/29 12:27  投稿

再びこんにちは。
追記に対しての回答になります。
> <a href="http://ランダムな文字列と数列"><img src="http://img.hoge.com/0000.jpeg"
の「ランダムな文字列と数列」という意図は、つまり「任意のURL」ということでよいでしょうか?
以下、その前提での回答なのですが、
取り出したいURLをhref属性として持っている<a>は、そのすぐ後に続くHTML要素は
以下、その前提での回答になります。
取り出したいURLをhref属性として持っている<a>は、そのすぐ後に
<img src
があるというのが条件ならば、マッチする正規表現としては
が続くというのが条件ならば、マッチする正規表現としては
```lang-ruby
regex = /<a href="(.*)"><img src/
```
あたりでいかがでしょうか?(すみませんが、テストコードを書いての検証は
しておりません。)これだと、マッチしたときに
$1
に欲しいURLが入ってきます。
ただ、
・a とhrefとの間は、半角スペース1個とは限らない。
とか
・imgとsrcとの間は、半角スペース1個とは限らない。
・<a>のタグを閉じる側の不等号(>)と、<img>のタグを開く側の不等号(<)との間には  
 任意の個数の半角スペースやタブがあるかもしれない。  
といった他の諸条件も考えなければいけませんが、そういった拡張も
上記の正規表現を修正していけば対応できるのではないかと思います。
ご参考になれば幸いです。
1 テキスト修正

jun68ykt

jun68ykt score 8930

2015/05/29 12:23  投稿

再びこんにちは。
追記に対しての回答になります。
> <a href="http://ランダムな文字列と数列"><img src="http://img.hoge.com/0000.jpeg"
の「ランダムな文字列と数列」という意図は、つまり「任意のURL」ということでよいでしょうか?
以下、その前提での回答なのですが、
取り出したいURLのある<a>のすぐ後に続くHTML要素として
取り出したいURLをhref属性として持っている<a>は、そのすぐ後に続くHTML要素は
<img src
があるというのが条件ならば、マッチする正規表現としては
```lang-ruby
regex = /<a href="(.*)"><img src/
```
あたりでいかがでしょうか?(すみませんが、検証しておりません。)
これだと、マッチしたときに
あたりでいかがでしょうか?(すみませんが、テストコードを書いての検証は
しておりません。)これだと、マッチしたときに
$1
に欲しいURLが入ってきます。
ただ、
・a とhrefとの間は、半角スペース1個とは限らない。
とか
・imgとsrcとの間は、半角スペース1個とは限らない。
といった他の諸条件も考えなければいけませんが、
そういった拡張も、上記の正規表現に追加していけば対応
できるかと思います。
といった他の諸条件も考えなければいけませんが、そういった拡張も
上記の正規表現を修正していけば対応できるのではないかと思います。
ご参考になれば幸いです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る