遅刻の「言い訳」選手権

Spreadsheet::ParseExcelを使っていてよくわからないところがあったので、ご教授お願いします。
Excelの空のセルを正規表現でマッチさせるにはどうすれば良いのでしょうか?


*****************************
use strict;
use utf8;

my cell = $sheet->{"Cells"}[$row][$col];
my val = "";

if($cell){
$val = $cell->Value;
}

if($val =~ "???"){
print "空のセルです";
}

A 回答 (1件)

パターンマッチにこだわるのなら


"???"
の部分は
"^$"
になるでしょう。
正規表現をネット検索すれば、代表的なパターンを見ることが出来ます。

この回答への補足

うーん、上手くいきません・・・。申し訳ありません。

*****************************
use strict;
use utf8;

for文でrow++、$row<=$MaxRowのループ

my cell = $sheet->{"Cells"}[$row][$col]; ##A列の読み込み
my b_cell = $sheet->{"Cells"}[$row][$col+1] ##B列の読み込み
my val = "";
my b_val = "";

if($cell){
$val = $cell->Value; ##A列の$rowが読み込まれる
}
if($b_cell){
$b_val = $b_cell->Value; ##B列の$rowが読み込まれる
}

if($val =~ " "){ ##(""の中身は全角スペース)
print "この分に関しては成功";
}
elsif($val =~ "あ"){
print "この分に関しては成功";
}
else{
if($b_val =~ " "){ ##(1)とする
print "ここが失敗";
}
else{
print "ここも失敗。(1)に当てはまるはずの値もすべてこちらに判断されてしまう";
}
}
*****************************

こういう感じなんです・・・。ちなむとFmtJapan使ってます。
出力された空のセルの$b_valが何もprintしなかったので、$b_val =~ ^$のほかに$b_val =~ ""というのも試してみましたが、それもダメでした。

補足日時:2009/09/16 18:52
    • good
    • 0
この回答へのお礼

ごめんなさい、自力で解決できました・・・。
if($b_val eq "")としたらOKでした、回答ありがとうございました。

お礼日時:2009/09/17 03:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報