• ベストアンサー

substrで数値を抽出してのマッチングについて

$aという変数に100~9999のうち、任意の数値が1つ入るとします。 この$aの頭の3桁が100かそれ以下でしたら if(substr($a,0,3) <= 100){各処理;} で可能なのですが、例えば101~120、120~500、500~700、 などのように範囲でマッチングを行いたいのですが どうもうまくいきません。 if(substr($a,0,3) =~ /[101-120]/)ではないですよね…。 この場合どのように判定させれば宜しいのでしょうか? お詳しい方どうぞご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$wk=substr($a,0,3); if(101<=$wk && $wk<=120){ print "101~120"; }

salemlight
質問者

お礼

お早いご返答ありがとうございます。 こちらの方法でうまくいきました。 大変感謝です!

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

if(substr($a,0,3)=~ /1(0[1-9]|1[0-9]|20)/){ print "101~120"; }

salemlight
質問者

お礼

お早いご返答ありがとうございます。 こちらの方法でもうまくいきました。 もっと判定式の勉強をしたいと思います…。 貴重なお時間を割いていただきありがとうございます。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

条件をandで並べればよいのでは if((substr($a,0,3) >= 101) && (substr($a,0,3) <= 120))

salemlight
質問者

お礼

お早いご返答ありがとうございます。 こちらの方法でもうまくいきました。 elsifでつながっていくので、今回は#1様の方法で いきたいと思います。 貴重なお時間を割いていただきありがとうございます。 大変感謝です!

関連するQ&A