[過去ログ] Regular Expression(正規表現) Part15 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
462
(3): デフォルトの名無しさん [sage] 2020/12/12(土)07:54 ID:hjoAkuIf(1)
(?!^|$) → ,
465: デフォルトの名無しさん [] 2020/12/12(土)10:10 ID:c3naq2mv(2/2)
>>462
ありがとうございます!
659
(1): デフォルトの名無しさん [] 2021/04/18(日)11:01 ID:GrVz/jbm(1/4)
●Regular Expressionの使用環境
C#

●検索か置換か?
検索

●説明
表のデータを名前付きでキャプチャしたい(year,month,day;open;high;low;close;volume)
日付 <td class="XXX">(?<year>\d{4})/(?<month>\d?\d)/(?<day>\d?\d)</td>

株価 <td>(?<open>[0-9,.]+)</td>\r\n
<td>(?<high>[0-9,.]+)</td>\r\n
<td>(?<low>[0-9,.]+)</td>\r\n
<td>(?<close>[0-9,.]+)</td>\r\n
<td>.*</td>\r\n<td>(?<volume>[0-9,.]+)</td>
●対象データ
<tr>
<td class="XXX">2021/04/02</td> 日付
<td class="YYY">8,510.0</td >始値
<td class="YYY">8,595.0</td> 高値
<td class="YYY">8,432.0</td> 安値
<td class="YYY">8,462.0</td> 終値
<td class="YYY">8,462.0</td> 調整後終値
<td class="YYY">4,337,300</td>出来高
</tr>

●希望する結果
<td class="XXX">(?<year>\d{4})/(?<month>\d?\d)/(?<day>\d?\d)</td>
または<td>(?<open>[0-9,.]+)</td>単独だと一致するが日付と株価を全部つなげると駄目なので一致するようにしたい

御教示よろしくお願いします
660
(1): デフォルトの名無しさん [sage] 2021/04/18(日)13:04 ID:8BgTcnje(1)
構造があるものは、正規表現では難しい。
スクレイピングは、Ruby で、nokogiri なら、

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<tr>
<td class="XXX">2021/04/02</td> 日付
<td class="YYY">8,510.0</td >始値
<td class="YYY">8,595.0</td> 高値
<td class="YYY">8,432.0</td> 安値
<td class="YYY">8,462.0</td> 終値
<td class="YYY">8,462.0</td> 調整後終値
<td class="YYY">4,337,300</td>出来高
</tr>
EOT

element = doc.at_css( 'tr > td.XXX' )
puts element.content
#=> 2021/04/02

elements = doc.css( 'tr > td.YYY' )
puts elements.map( &:content ).join( " : " )

#=> 8,510.0 : 8,595.0 : 8,432.0 : 8,462.0 : 8,462.0 : 4,337,300
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s