PHP eregの落とし穴・エラー [eregについて・eregとは?]

PHP eregの落とし穴・エラー [eregについて・eregとは?]

PHP関数 eregは文字列のマッチング検索や置き換えを行う関数です。
今回は、簡単な使い方と私が陥ったエラー・罠をご紹介します


---

この関数は、いくつか種類がありますが今回は、

マッチングで用いる
関数

で紹介します。

ereg とは、大文字・小文字の区別をする場合に使用する。
eregi とは、大文字・小文字の区別をしない場合に使用する。

書き方:
ereg(マッチパターン, 対象変数);
※一致すれば、True ・ 不一致なら false を返します。

解説:
マッチパターンに指定されたものと対象変数を比較してマッチしているかを検索します。


---

私が陥った罠。。。

csvを配列に格納して、始めの列の数字とマッチングさせていた時のエラー。

1~40まである数字をマッチング検索させていると・・・
1の場合19 が 2場合29 が 3場合39 が 4の場合40 で
マッチしてしまう。

その他の、5の場合は5でマッチするし、12の場合でも12でマッチする。

これは、ereg関数が指定されてるマッチパターンが対象変数全体の
どこかに含まれていればマッチするという仕組みのようで
仮に1でマッチ検索をすれば1と10~19までがマッチと判断され
最後にマッチした19がアウトプットされるという感じ。

だから、4の場合は40がマッチしてしまう。

仮に120までの数字でマッチ検索させれば、
12の場合は、120でマッチしてしまう。

---

この様に、ereg関数は、マッチパターンと対象変数を比較し
そのマッチパターンが対象変数のどこかに入っていればマッチと判断します。

簡単に言えば、123という数字は、1と2と3として認識されていて
12でも23でもマッチしてしまうということになる。

このeregのエラーで困っているのは初心者だけだろうが・・・
一応紹介してみた。
関連記事


【 忘却板/忘れた事を貼れます 】

コメント

非公開コメント