7のイベントを再登録するWindows7/8/10でRustを別ドライブに展開する際のTIPSPHP+SQLでMySQLのInnoDBのテーブルに複合キーかつ連番のINSERTを実装するネイティブなPHPでselectタグやradioボタンの選択状態をどう表現するかエンターキーによる入力項目のフォーカスの移動をWeb系システムに実装してみるCattleMute>PHP>preg_match()での正規表現における繰り返しの最大回数について2019.04.30preg_match()での正規表現における繰り返しの最大回数についてPHPのpreg_match()で正規表現でパターンマッチを行う際に、{,}のカギ括弧とカンマで文字列の比較を繰り返し行うことができる。これを正規表現に対応したテキストエディタと同じ感覚で利用していたのだが、その際に少しだけ頭を捻ったことがあった。それが、繰り返し回数の最大についてだ。処理B}とかやっていたんだけど、これだとどうも常にelseの条件を通ってしまう。そもそも、preg_match()は正規表現の判定の際に、preg_match()そのものでエラーが発生した場合はBOOLEAN値のfalseを返す。~っと前に読んでいたPHPの公式ドキュメンテーションで、マッチした場合は1、マッチしなかった場合は0、そして前述のBOOLEAN値を返すということは一応知っていたので、そのせいでelseの条件を通ることはわかったのだが・・・。エラーしているのだろうか。おかしいと思って、正規表現のループ回数を最大999とかにしてみると、問題なく動く。そこで気づいたのが、PHPの正規表現関係の関数にはループに設定できる最大の回数があるのではないかということ。思えば、自分はこのパターンマッチを利用する際に、過去を遡っても覚えている範囲では最大でも2048回とかにしかしたことがない。そこで、公式ドキュメンテーションを再度調べてみると、こんな記述を発見した。最小と最大の繰り返し数を指定します。番目の数以下である必要があります。繰り返しより抜粋やっぱり最大値があった。preg_match()に関わらず、多分、preg_replace()とかも同じ仕様。これ関係の関数で正規表現で繰り返しを行う場合は、65535回が設定できる最大である。́・ω・`)カテゴリPHPこの記事のコメントコメントはないです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。