CGI-BBS > CGI > Perl > 正規表現の全角文字(再掲載)


カレッヂ
カレッヂ


質問者 Octo  投稿日 12/12(水) 14:38:26
先ほど書き込みをしましたが、なぜかその内容が読みこめないので
再掲載します。

} elsif ($FORM{'hotel1'} =~ /^(得)/ && ($FORM{'htl2nd_1'} ne "なし" || $FORM{'htl3rd_1'} ne "なし") ) {

としたところ、たとえば hotel1を「(得)その1」、htl2nd_1 を「A-1」とすれば
ひっかかるはず・・・と考えたのですが、この後に指定した何も起こらず
先へ進んでしまいます。

正規表現の部分に入れた全角文字が原因でしょうか?
質問者 Octo  [削除]  投稿日 12/12(水) 14:40:05
> ひっかかるはず・・・と考えたのですが、この後に指定した何も起こらず

「この後に指定した処理は行われず」です。失礼しました。
回答者 しあわせのツボ  [削除]  投稿日 12/12(水) 15:16:57
半角パーレンをエスケープしていないのが原因でしょう。
/^(得)/ とすると、()はグループ化の指示と見なされます。
文字として()を使いたいなら /^\(得\)/ として下さい。
質問者 Octo  [削除]  投稿日 12/12(水) 16:31:40
しあわせのツボ様:

そのようにしてみたところ大成功でした!
ありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技