![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> Perl 実例集
Perl 実例集■ 高速な文字のマッチング処理
文字列のマッチングを使って分岐処理を行う場合、明らかに特定の文字列の出現率が高い場合には、その文字列をマッチング処理の先頭に持ってくることで処理の高速化を図れます。 [ 例:メールアドレスが携帯のものかPC のものかを判別する処理 ]
if ( $email =~ m/( docomo | [kcrtdhnsq]\.vordafone | ezweb | ido )/gi ) { $terminal = "携帯"; ← 携帯固有の文字列を含んでいた場合 } else { $terminal = "PC"; ← それ以外の場合 } [ 解説 ] 変数 $email に赤文字の文字列 「docomo」「(kcrtdhnsq).vordafone」「ezweb」「ido」のいずれかが含まれていれば、端末 $terminal に「"携帯"」を代入する。 それ以外の場合には「"PC"」を代入する。 この際、文字列のマッチングに一番出現率の高いと思われる文字列 「docomo」 をマッチング処理の先頭に持ってくることで、処理の高速化を図っています。 変数 $email に「docomo」が含まれていた場合、パイプ(|)以降のマッチング処理を飛ばして、すぐに 「$terminal = "携帯"」 の処理まで進むため、より効率的に処理が行われます。 関連ページ → いずれかの単語にマッチ |
|||||||||||||||||||