お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
https://datatracker.ietf.org/doc/html/rfc4180
http://www.kasai.fm/wiki/rfc4180jp
https://blog.tech-monex.com/entry/2021/03/26/160000#2-Definition-of-the-CSV-FormatCSV%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9
普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。
その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。
ということでこういった面倒くささを解消するコマンドを作るのがこのお題。
コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。
尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。
検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。
出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。
CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。
プログラミングのお題スレ Part20
■ このスレッドは過去ログ倉庫に格納されています
251デフォルトの名無しさん
2021/10/04(月) 21:51:58.57ID:8pCgPPfH■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 一律現金給付も消費減税もなし 高市内閣の経済対策に割れる世論 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 【TBS】「レコ大」にミセス、ふるっぱー、ビーファ、幾田りら、HANA、ボネクドら出演 AKB48には前田敦子らOGメンバー参加 [阿弥陀ヶ峰★]
- 【実況】博衣こよりのえちえち朝活🧪 2
- 【実況】博衣こよりのえちえち朝活🧪
- ネトウヨ「中国は政府が人民に金使って世論操作のヤラセ書き込みをさせている国。」 [153490809]
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- 残クレマイホーム爆誕 [715715613]
- 中国父さん、ジャップに事前通知した音声公開😄騒いでたのはジャップだけだった😭 [929293504]
