- ベストアンサー
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]/)ではないですよね…。 この場合どのように判定させれば宜しいのでしょうか? お詳しい方どうぞご教授お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$wk=substr($a,0,3); if(101<=$wk && $wk<=120){ print "101~120"; }
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.3
if(substr($a,0,3)=~ /1(0[1-9]|1[0-9]|20)/){ print "101~120"; }
質問者
お礼
お早いご返答ありがとうございます。 こちらの方法でもうまくいきました。 もっと判定式の勉強をしたいと思います…。 貴重なお時間を割いていただきありがとうございます。
- php504
- ベストアンサー率42% (926/2160)
回答No.2
条件をandで並べればよいのでは if((substr($a,0,3) >= 101) && (substr($a,0,3) <= 120))
質問者
お礼
お早いご返答ありがとうございます。 こちらの方法でもうまくいきました。 elsifでつながっていくので、今回は#1様の方法で いきたいと思います。 貴重なお時間を割いていただきありがとうございます。 大変感謝です!
お礼
お早いご返答ありがとうございます。 こちらの方法でうまくいきました。 大変感謝です!