タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

regexとphpに関するshimookaのブックマーク (3)

  • PHPの正規表現で^$より\A\zがいい理由 - Qiita

    正規表現のメタ文字とエスケープシーケンスについておさらい。 メタ文字 ^: (ハット記号) 検索対象(複数行モードでは行)の始まりを言明 メタ文字 $: (ドル記号) 検索対象の終わりあるいは終端の改行文字の前(複数行モードでは行の終わり)を言明 エスケープシーケンス \A: 検索対象文字列の始端(複数行モードとは独立) エスケープシーケンス \z: 検索対象文字列の終端(複数行モードとは独立) 言明 \A, \Z, \z は、(アンカー で説明する)ハット記号やドル記号とは 異なり、オプション設定によらず、文字列の始端または終端だけに マッチします。これらの言明は、PCRE_MULTILINE および PCRE_DOLLAR_ENDONLY オプションの影響を受けません。 \Z と \z との違いは、 \Z は文字列の末尾の改行の前の位置および文字列の 終端にマッチするのに対し、\z は

    PHPの正規表現で^$より\A\zがいい理由 - Qiita
  • PHPでは正規表現コンパイル結果のキャッシュが暗黙に行われている - hnwの日記

    筆者がPHPをさわり始めたころ、「PerlのコレはPHPではどうやるんだろう?」と思うことが頻繁にありました。一部の疑問については解説を見つけたり自分でソースコードを読んだりして解決したものの、考えるのをやめてしまったものもあります。その一つが正規表現コンパイル結果の保存に関するもので、最近まで完全に忘れていました。 正規表現のコンパイルというのは与えられた正規表現を解釈して実行しやすいデータ構造に変換する作業のことを指します。具体的にはDFA(決定性有限オートマトン)を構成するか、正規表現エンジン内部で用いられるVM命令列に変換するかといった処理になります。これらは複雑な処理ですので、性能の観点で言えば同じ正規表現に対するコンパイル処理はできるだけ繰り返したくありません。 Perlの場合、/foobar/ のようなスタティックな正規表現のコンパイルは1回しか行われません。一方で、正規表現

    PHPでは正規表現コンパイル結果のキャッシュが暗黙に行われている - hnwの日記
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回

    こんにちは、久保田です。 PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回です。 前回の第一回では、PHPで作成する正規表現の仕様の紹介や正規表現のパーサの実装を行いました。今回の記事では、正規表現を実行する仮想マシンをPHPで実装します。 正規表現を実行する仮想マシン まず、実装する仮想マシンの仕様について解説します。Regular Expression Matching: the Virtual Machine Approachでは仮想マシンについては以下のように記述しています。 To start, we'll define a regular expression virtual machine (think Java VM). The VM executes one or more threads, each running a regular expression 

    PHPで仮想マシンベースの正規表現エンジンを作ってみる 第二回
    shimooka
    shimooka 2013/10/10
    こういうの良いよね
  • 1