teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

テキスト修正

2015/05/29 03:31

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  <img src
12
12
  が続くというのが条件ならば、マッチする正規表現としては
13
13
  ```lang-ruby
14
- regex = /<a href="(.*)"><img src/
14
+ regex = /<a href="([^"]+)"><img src/
15
15
  ```
16
16
 
17
17
  あたりでいかがでしょうか?(すみませんが、テストコードを書いての検証は

2

テキスト修正

2015/05/29 03:31

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -5,10 +5,11 @@
5
5
  > <a href="http://ランダムな文字列と数列"><img src="http://img.hoge.com/0000.jpeg"
6
6
 
7
7
  の「ランダムな文字列と数列」という意図は、つまり「任意のURL」ということでよいでしょうか?
8
- 以下、その前提での回答なのでが、
8
+ 以下、その前提での回答りま
9
+
9
- 取り出したいURLをhref属性として持っている<a>は、そのすぐ後に続くHTML要素は
10
+ 取り出したいURLをhref属性として持っている<a>は、そのすぐ後に
10
11
  <img src
11
- あるというのが条件ならば、マッチする正規表現としては
12
+ 続くというのが条件ならば、マッチする正規表現としては
12
13
  ```lang-ruby
13
14
  regex = /<a href="(.*)"><img src/
14
15
  ```
@@ -21,6 +22,8 @@
21
22
  ・a とhrefとの間は、半角スペース1個とは限らない。
22
23
  とか
23
24
  ・imgとsrcとの間は、半角スペース1個とは限らない。
25
+ ・<a>のタグを閉じる側の不等号(>)と、<img>のタグを開く側の不等号(<)との間には
26
+  任意の個数の半角スペースやタブがあるかもしれない。
24
27
  といった他の諸条件も考えなければいけませんが、そういった拡張も
25
28
  上記の正規表現を修正していけば対応できるのではないかと思います。
26
29
 

1

テキスト修正

2015/05/29 03:27

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -6,23 +6,22 @@
6
6
 
7
7
  の「ランダムな文字列と数列」という意図は、つまり「任意のURL」ということでよいでしょうか?
8
8
  以下、その前提での回答なのですが、
9
- 取り出したいURLのある<a>のすぐ後に続くHTML要素として
9
+ 取り出したいURLをhref属性として持っている<a>は、そのすぐ後に続くHTML要素
10
10
  <img src
11
11
  があるというのが条件ならば、マッチする正規表現としては
12
12
  ```lang-ruby
13
13
  regex = /<a href="(.*)"><img src/
14
14
  ```
15
15
 
16
- あたりでいかがでしょうか?(すみませんが、検証しておりません。)
16
+ あたりでいかがでしょうか?(すみませんが、テストコードを書いての検証
17
- これだと、マッチしたときに
17
+ しておりません。)これだと、マッチしたときに
18
18
  $1
19
19
  に欲しいURLが入ってきます。
20
20
  ただ、
21
21
  ・a とhrefとの間は、半角スペース1個とは限らない。
22
22
  とか
23
23
  ・imgとsrcとの間は、半角スペース1個とは限らない。
24
- といった他の諸条件も考えなければいけませんが、
24
+ といった他の諸条件も考えなければいけませんが、そういった拡張も
25
- そういった拡張も、上記の正規表現に追加していけば対応
25
+ 上記の正規表現を修正していけば対応できるのではないかと思います。
26
- できるかと思います。
27
26
 
28
27
  ご参考になれば幸いです。