プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Ruby 初心者スレッド Part 67
1デフォルトの名無しさん (ワッチョイ b72c-yePO)
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0148デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 23:09:08.20ID:oFpMkyEJ0 3つに分離する部分だけを作った。
入出力の部分は、CSV モジュールを使えば?
re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/" )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転
出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1",
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/",
"http://www.arashiyamaryo.or.jp/access/"]
入出力の部分は、CSV モジュールを使えば?
re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/" )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転
出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1",
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/",
"http://www.arashiyamaryo.or.jp/access/"]
149148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:51:09.40ID:0DE0v1OZ0 出来た!
文字列を3分割する部分を関数化して、呼び出す
入出力は、CSV 形式で。
入力ファイルは、input.csv
paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?
# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https
# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end
次へ続く
文字列を3分割する部分を関数化して、呼び出す
入出力は、CSV 形式で。
入力ファイルは、input.csv
paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?
# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https
# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end
次へ続く
150148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:52:06.70ID:0DE0v1OZ0 require 'csv'
result_ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )
split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
result_ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )
split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
レスを投稿する
ニュース
- 世界的DJ沖野修也、高市早苗首相のアーティスト海外展開支援めぐり疑問「補償が先ではないですか?」 [muffin★]
- 人間の髪の毛は押し出されるのではなく「引っ張られる」ことで成長する [少考さん★]
- (社説)スパイ防止法の策定 民主社会の基盤を崩さないか:朝日新聞 [少考さん★]
- 【速報】 日本、貿易収支が黒字転換、海外へ半導体部品の輸出増加、10月の経常収支 過去最大 2兆8335億円の黒字 [お断り★]
- 世界的DJ沖野修也、高市早苗首相のアーティスト海外展開支援めぐり疑問「補償が先ではないですか?」 ★2 [muffin★]
- 【野球】球場のお客さんは『プロ野球』を観に来ていない? 「チアリーダーなど野球以外のイベント」に熱心な球団関係者を残念に思う [冬月記者★]
- 【画像】ネトウヨと会話が成立しない理由がこちら・・・😨 [441660812]
- メンタルクリニック「障害年金が目的の奴はうちに来るな。必要な人にはこちらから声かける。社労士を使う奴には診断書は書かない」 [201193242]
- 【高市悲報】維新青島健太議員、打ち合わせと称しバチーン!と政治資金でゴルフ、キャバクラなど行きまくる😤 [359965264]
- 🏡👊😅👊なにここ珍百景👊😅👊🏡
- 中国国交問題、高市早苗が「ごめんなさい」と言うだけで全てが解決する模様wwwwww wwwwww [153490809]
- ブスとナマポはVIPから出て行けや
