サンプルデータ
試合日程
16日(火)
得点,18,失点,11,天気,313,気温,80
2日(火)
得点,18,失点,11,天気,313,気温,80
20日(土)
得点,18,失点,11,天気,313,気温,80
19日(金)
得点,18,失点,11,天気,313,気温,80
上のようなCSVファイルから
第一回目の日程:16日(火)
第一回目の日付:16
第一回目の曜日:火
第二回目の日程:2日(火)
第二回目の日付:2
第二回目の曜日:火
第三回目の日程:20日(土)
第三回目の日付:20
第三回目の曜日:土
といった具合にperlを使ってテキストを抽出したいと考えています。最終的には整形したデータをcsvファイルなどに吐き出したいと思っています。教えてください。
No.3ベストアンサー
- 回答日時:
No.1 を、すこしわかりやすく
#!/usr/bin/perl
open F, "サンプルデータ.txt"; # 処理すべきファイルを開く
my $count = 0;
my @kansuji = ("〇","一","二","三","四","五","六","七","八","九");
while (<F>) { # ファイルを一行ごとに読み取る
if (/^(\d+)日\((\S+)\)$/) { # 行内に "16日(火)" の様なパターンが含まれるなら
my $nittei = $&; # パターン全体を「日程」として抽出
my $hiduke = $1; # パターン内1番目のグループを「日付」として抽出
my $yohbi = $2; # パターン内2番目のグループを「曜日」として抽出
my $kaisu = ++$n; # 「回数」を計上
$kaisu =~ s/([0-9])/$kansuji[$1]/eg; # 「回数」文字列の、アラビア数字を漢数字に置き換える
my $prefix = "第${kaisu}回目の"; # 共通の前置詞を編集しておく
print "${prefix}日程: $nittei\n";
print "${prefix}日付: $hiduke\n";
print "${prefix}曜日: $yohbi\n";
}
}
close F;
perl で使う記号がわからないなら、以下などを参考に
http://perldoc.jp/docs/perl/5.8.8/perlop.pod
http://www.tohoho-web.com/wwwperl1.htm
No.2
- 回答日時:
私が回答できる訳ではありませんが、
この質問で、最も難しい点は、第一回目、第二回目、第三回目と何回目かを示す値を漢字で表現する点です。
第1回目、第2回目、第3回目のようにしてはまずい理由がありますでしょうか。
又、どうしても漢字で表現したい場合、以下のような値は、漢字でどのように表現することを望みますか。
10回目
11回目
100回目
101回目
1000回目
10000回目
100000回目
No.1
- 回答日時:
my $n = 0;
my @h = ("〇","一","二","三","四","五","六","七","八","九");
while(<>) {
if (/^(\d+)日\((\S+)\)$/) {
my ($t,$d,$w,$a) = (++$n, $1, $2, $0);
$t =~ s/([0-9])/$h[$1]/eg;
$t = "第$t回目の";
print "$t日程:$a\n$t日付:$d\n$t曜日:$w\n";
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- 宇宙科学・天文学・天気 天気 4 2023/05/20 03:14
- 宇宙科学・天文学・天気 天気 気温 1 2023/05/21 22:09
- 化学 引火性物質の蒸気圧について 0 2023/02/16 20:19
- 化学 こんにちは、昨日もこのような質問を上げたんですが、 また知りたいことがあるので投稿いたします。 引火 1 2023/02/19 23:11
- 野球 北海道日本ハムファイターズの話 2 2023/01/06 01:36
- 地球科学 天気 2 2023/05/04 19:19
- 中途・キャリア 転職エージェントってお節介ってよく言いますよね。 次が最終面接で、都合の良い日程回収します!と火曜日 7 2023/05/16 13:52
- その他(恋愛相談) 日程打診してきたのに、その日に自分の予定入れる人 6 2022/06/07 00:40
- アルバイト・パート 今日の昼頃バイトの面接に合格電話が来ました。 21〜25日で都合のいい日を聞かれ、 私は火曜日から大 2 2022/04/17 21:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
テキストファイルで提出とは?
-
perlのflock関数でロックをかけ...
-
Perlで特定文字列から特定文字...
-
bashスクリプト
-
perlをバージョンアップしたら...
-
TeraPadエディターの操作方法に...
-
perlで自動ログインをしたいが...
-
perlの構文でカンマの意味が分...
-
Perl の外部モジュールの利用方法
-
Strawberry Perl for Windows ...
-
perl LWPでURLにアクセスした時...
-
Perlで、「が」を、「...
-
Perlで時間の計算
-
perlのプログラミング 部分入れ...
-
英数文字列のうちの数値を4桁に...
-
Perlの例文でif($a==1&&$b==5&&...
-
Wallpaper Engineでおすすめの...
-
openした後、closeしないでプロ...
-
perlで複数のファイルの処理に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
openした後、closeしないでプロ...
-
perlをバージョンアップしたら...
-
Perl の外部モジュールの利用方法
-
Perlのエラーについてご教授く...
-
テキストファイルで提出とは?
-
bashスクリプト
-
Windows10においての『Perl』の...
-
perlのflock関数でロックをかけ...
-
Perlで特定文字列から特定文字...
-
perlプログラミング 空白行削除
-
画像が表示でnull; this.src
-
ターミナルで特定の文字と文字...
-
Wallpaper Engineでおすすめの...
-
perl 正規表現でエラー
-
perlで複数のファイルの処理に...
-
perlでリテラル値はメモリにど...
-
このファイルを開く方法で困っ...
-
LinuxにおいてのPerlのプログラ...
-
PerlでUTF-8のファイルの文字列...
おすすめ情報
自分の勉強不足という意味です。どうしてできないのかもわかっていないから。もうちょっと勉強してみます。