回答編集履歴
4
読みやすいように改行を追加
test
CHANGED
@@ -42,7 +42,11 @@
|
|
42
42
|
|
43
43
|
```lang-ruby
|
44
44
|
|
45
|
+
target.lines.select { |line| line.include?('class="red"') }.map do |line|
|
46
|
+
|
45
|
-
|
47
|
+
line.match(/class="listName">([^<]+).+class="red">([^<]+)/).to_a[1..-1]
|
48
|
+
|
49
|
+
end
|
46
50
|
|
47
51
|
#=> [["欲しい文字", "(未読:1件)"]]
|
48
52
|
|
3
<span class="red">の表示をcodeに変更。
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
得られる HTML が間違いなく一行にお書きの要素が入っており、 class 要素の直後に `>` が来ていることを前提とします。
|
2
2
|
|
3
|
-
<span class="red"> が入っている行を取得するのは k.tada さんのやり方で良いと思います。
|
3
|
+
`<span class="red">` が入っている行を取得するのは k.tada さんのやり方で良いと思います。
|
4
4
|
|
5
5
|
|
6
6
|
|
2
target.lines.selectで取得出来たものは文字列を含む配列なので訂正。
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
が取得出来ました。
|
29
|
+
が含まれた配列が取得出来ました。
|
30
30
|
|
31
31
|
次にこの文字列から"欲しい文字"と"(未読: x件)"を取得するときに **正規表現を使う** とすると
|
32
32
|
|
1
句点を追加
test
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
では Nokogiri を使ってみます。
|
72
72
|
|
73
|
-
残念ながら元の HTML が a タグも span タグも並列に入っており、それらを覆う div タグが入っていないので、すこし面倒になります。具体的には <span class="red"> を選択した後に兄要素を取得する必要があります。 XPath ならば preceding-sibling を使います
|
73
|
+
残念ながら元の HTML が `a` タグも `span` タグも並列に入っており、それらを覆う `div` タグが入っていないので、すこし面倒になります。具体的には `<span class="red">` を選択した後に兄要素を取得する必要があります。 XPath ならば preceding-sibling を使います。 CSS では選択不可能でした(CSS4 で可能になるそうですが)。
|
74
74
|
|
75
75
|
|
76
76
|
|