• ベストアンサー

文字列が6文字の半角スペースかどうかを判断する方法

$mno = substr($buf,0,6); if ($mno eq ' '){ &error(4); } else { ・・・・・・・・ ・・・・・・・・ } と、上記のような感じでロジックをくんでいるですが、 $mno が6文字分の半角スペースの時はエラーサブにとびたいのですが、うまく飛びません。 上記のようなロジックであっているのでしょうか? それとも、「eq」や「ne」では比較できないのでしょうか?

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

  • ベストアンサー
  • arcsin
  • ベストアンサー率70% (28/40)
回答No.1

このページで半角スペースを表すのは難しいので、ここではあえて半角スペースを 「.」 で表させて頂きます。 質問者さんのソースの通り、 $buf = '......abcdefg'; #最初の6文字が半角スペースの適当な文字列 $mno = substr($buf,0,6); if ($mno eq '......'){ &error(4); } else { #ほにゃらら } で一応動きましたよ~(Active Perl)。全角スペースだったっとかいうオチは無いですよね。念のため$bufの中身のご確認を・・・。

akasi_and_yabu
質問者

お礼

結果的にロジック的には問題ありませんでした・・・・(^^; ただし、$mno = substr($buf,0,6); の行頭に、カラム下げのため半角6文字分のスペースがあり、その行に全角スペースが混ざっており結果的に上記の substrの行そのものがスキップされた形で処理がされていたようです。 そのため比較ができていませんでした。 お騒がせしてすいませんでした(^^;;;;

関連するQ&A