2010-12-28 3 views
0
/^(\{\})|^(\{\*([\S\s]*?)\*\})|^(<\?(?:php\w+|=|[a-zA-Z]+)?)|^([  ]*[ 
]+[ ]*)|^(\{strip\})|^(\{\/strip\})|^(\{literal\})|^(\{\s{1,}\/)|^(\{\s{1,})|^(\{\/)|^(\{)|^(([\S\s]*?)(?=([ ]*[ 
]+[ ]*|\{|<\?)))|^([\S\s]+)/ 

誰もが上記のパターンで^(<\?(?:php\w+|=|[a-zA-Z]+)?)を知っていますか?

答えて

2

XML処理ディレクティブの先頭に一致します。それは明示的に<?phpおよび<?=と一致するので、phpをターゲットにしているようです。

ただし、XMLプロローグ<?xml(または<?xcvsdfadfなどの他のシーケンス)も一致するため、実際の目的は分かりにくいです。

  • ^:行頭にアンカー。
  • ( .. ):グルーピング、後で参照する(おそらく抽出のコードから)。
  • \??
  • (?:| .. ):代替(抽出なし)は、|の分割されたサブパターンのいずれかに一致します。
    • ?:これに代わるものとして、完全に省略することもできます。 (0または1)
  • php\w+:リテラルphpは、1つの以上の単語文字が続きます。
  • =:リテラル=
  • [a-zA-Z]+:(のみ-Z)、大文字または小文字の文字の一つ以上

HTH。

+0

'<?phptest'、なぜこの方法にマッチするのですか?' <?php test'ではありませんか? – smarty

+0

@smarty;私はそれがphpコマンドを探しているとは思わない、ちょうどディレクティブを探しているので、後に来るものに関係なく '<?php'、' <?xml'の両方を取得している。 '' a-zA-Z '+パターンでも一致しているので、なぜ '' php''を明示的に実行しているのか分かりません。おそらく '\ w'グループに必要なものがありますPHPの場合? – falstro

関連する問題