回答編集履歴

10

テキスト修正

2020/07/26 22:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 正規表現でやり切ろる試みもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使ってHTMLをパースすると楽に実現できるかもしれません。以下、その一例です。
5
+ 正規表現を使ってもきそすが、[nokogiri](https://nokogiri.org/) を使ってHTMLをパースすると、より楽に実現できるかもしれません。以下、その一例です。
6
6
 
7
7
 
8
8
 

9

テキスト修正

2020/07/26 22:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  result = Nokogiri::HTML.parse(html).search('table').map do |tbl|
50
50
 
51
- ['th', 'td'].map { |tag| tbl.search(tag).map(&:content) }.transpose.to_h
51
+ %w(th td).map { |tag| tbl.search(tag).map(&:content) }.transpose.to_h
52
52
 
53
53
  end
54
54
 

8

テキスト修正

2020/07/26 20:19

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 正規表現でやり切ろうとする試みもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使と楽かもしれません。以下、その一例です。
5
+ 正規表現でやり切ろうとする試みもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使ってHTMLをパースすると楽に実現できるかもしれません。以下、その一例です。
6
6
 
7
7
 
8
8
 

7

テキスト修正

2020/07/26 18:59

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 正規表現でやり切ろうとするもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使うと楽かもしれません。以下、その一例です。
5
+ 正規表現でやり切ろうとする試みもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使うと楽かもしれません。以下、その一例です。
6
6
 
7
7
 
8
8
 

6

テキスト修正

2020/07/26 18:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  result = Nokogiri::HTML.parse(html).search('table').map do |tbl|
50
50
 
51
- ['th', 'td'].map {|tag| tbl.search(tag).map &:content }.transpose.to_h
51
+ ['th', 'td'].map { |tag| tbl.search(tag).map(&:content) }.transpose.to_h
52
52
 
53
53
  end
54
54
 

5

テキスト修正

2020/07/26 17:35

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 正規表現で頑張ってみるのもよいすが、[nokogiri](https://nokogiri.org/) でHTMLパースすると楽かもしれません。以下、一例です。
5
+ 正規表現でやり切ろうとするのもよいとは思いますが、さはさりながら、[nokogiri](https://nokogiri.org/) を使うと楽かもしれません。以下、その一例です。
6
6
 
7
7
 
8
8
 

4

テキスト修正

2020/07/26 17:26

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -46,15 +46,9 @@
46
46
 
47
47
 
48
48
 
49
-
50
-
51
49
  result = Nokogiri::HTML.parse(html).search('table').map do |tbl|
52
50
 
53
- keys = tbl.search('th').map &:content
51
+ ['th', 'td'].map {|tag| tbl.search(tag).map &:content }.transpose.to_h
54
-
55
- values = tbl.search('td').map &:content
56
-
57
- keys.zip(values).to_h
58
52
 
59
53
  end
60
54
 

3

テキスト修正

2020/07/26 17:10

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  values = tbl.search('td').map &:content
56
56
 
57
- [keys, values].transpose.to_h
57
+ keys.zip(values).to_h
58
58
 
59
59
  end
60
60
 

2

テキスト修正

2020/07/26 17:05

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -50,15 +50,11 @@
50
50
 
51
51
  result = Nokogiri::HTML.parse(html).search('table').map do |tbl|
52
52
 
53
- tbl.search('tr').each_with_object({}) do |tr, h|
53
+ keys = tbl.search('th').map &:content
54
54
 
55
- key = tr.search('th')[0].content
55
+ values = tbl.search('td').map &:content
56
56
 
57
- value = tr.search('td')[0].content
58
-
59
- h[key] = value
57
+ [keys, values].transpose.to_h
60
-
61
- end
62
58
 
63
59
  end
64
60
 

1

テキスト修正

2020/07/26 17:03

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 正規表現で頑張ってみるのもよいですが、[nokogiri](https://nokogiri.org/) でHTMLをパースすると楽にやそうです。以下、一例です。
5
+ 正規表現で頑張ってみるのもよいですが、[nokogiri](https://nokogiri.org/) でHTMLをパースすると楽かもしません。以下、一例です。
6
6
 
7
7
 
8
8