ここから本文です

正規表現で2桁と3桁の数字の区別をつけたい

sorasu1979さん

2010/8/3116:41:22

正規表現で2桁と3桁の数字の区別をつけたい

数字で 3 5 20 15 99 100 105 201 300とあった場合
3桁の数字を正規表現で検索したい場合は\d{3}として検索をしています
2桁の数字、ここでは20と15と99ですが、\d{2}とすると100、105、201、300の前2つにも検索が引っかかってしまいます
20と15と99だけを検索したい場合にはどの様にすればいいのでしょうか
また、こちらは出来たらで構わないのですが、2桁の数字かつ任意の範囲(例えば10から50までとか)で検索が出来ませんでしょうか
よろしくお願いします

閲覧数:
4,988
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

jiheiさん

2010/8/3120:42:18

\b\d{2}\b

で良いですね。 \bは単語の境界線を示す記号ですので二文字の単語を全て抽出という意味になります。以下にサンプルコードを書いて置きますので参考にしてください。

------------------------------
#!/usr/bin/perl

my $data = '3 5 20 15 99 100 105 201 300';


@nums = $data =~ m/\b\d{2}\b/g;

foreach $tmp (@nums){

print $tmp."\n";

}


------------------------------

質問した人からのコメント

2010/8/31 21:50:43

成功 jiheiさんありがとうございました
色々なサイトを見て回り、色々こねくり回していたのですが教えて頂いたおかげで正規表現で2桁の検索が出来ました

ベストアンサー以外の回答

1〜1件/1件中

csh_tcsh_shさん

2010/8/3116:56:36

^\d{2}$でいいのかな?
\d{2}だと2桁のどこにでも引っかかって2桁以上何でも引っかかっちゃうと思う。

>2桁の数字かつ任意の範囲(例えば10から50までとか)で検索が出来ませんでしょうか

10から50まで回すんじゃダメなの?
for (10 .. 50){
}
使うとか。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。