
ある、複数行の文章内に散在する
最低4桁以上の金額を全て抽出するには?
例えば
\####
\####-
####円
と、それぞれ3桁を「,」で区切った数値を金額とみなす場合
1度のパターンマッチで、
上記3つのバリエーションとカンマ付き全種の
不純物が入らない厳密なパターンを記すことは、できますでしょうか?
追記、
以下のような場合は金額とみなしません。
####(金額に関する記号が前後に付かないため)
####-(頭に\が足りないマイナス単独なため)
###(3桁しかないため)
# ###(数値の間の区切りがカンマ以外のため)
No.2
- 回答日時:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
# for over 4 digits
my $digit = qr{\d(?:\d){3,}};
my $digit_with_comma = qr{\d{1,3}(?:,(?:\d){3})+};
my $regex1 = qr{\\${digit}-{0,1}};
my $regex2 = qr{\\${digit_with_comma}-{0,1}};
my $regex3 = qr{${digit}円};
my $regex4 = qr{${digit_with_comma}円};
my $text = do {local $/ = undef; <DATA>};
my @prices = ($text =~ m/$regex1|$regex2|$regex3|$regex4/g);
binmode STDOUT, ":encoding(utf8)";
print $_, $/ for @prices;
__DATA__
-- normal pattern1
\1234
\12345
\123456
\1234567
\1,234
\12,345
\123,456
\1,234,567
-- normal pattern2
\1234-
\12345-
\123456-
\1234567-
\1,234-
\12,345-
\123,456-
\1,234,567-
-- normal pattern3
1234円
12345円
123456円
1234567円
1,234円
12,345円
123,456円
1,234,567円
-- error pattern1
\123
\123-
123円
-- error pattern2
1234
1234-
1234yen
1,234
1,234-
1,234yen
-- error pattern3
1 234
1 234-
1 234円
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
3から100までの素数を配列に入...
-
Perlについて教えてください
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
正規表現
-
正規表現の実行レポートは作成...
-
タグを正規表現で完全に削除
-
この正規表現の意味は?
-
謎の半角■文字を正規表現で文字...
-
文字同士の比較~抜き出し
-
文字のマッチングについて
-
Perlで別ファイルから文字列の抽出
-
/ [ 【 の文字をマッチさ...
-
置き換えについて
-
正規表現 \\b123bと^123$は同じ?
-
perlで記号除去を行いたいので...
-
リナックスの grepコマンド ...
-
正規表現で2種類ある括弧を区別...
-
記号とあらば、1文字でも全て...
-
perlのマッチでマッチしたい物...
-
正規表現の展開
-
パイプ以外をエスケープしてマ...
-
3回以上連続する文字(どんな...
おすすめ情報