О $ yy_global_pattern, найденном в smarty - PullRequest
0 голосов
/ 28 декабря 2010
/^(\{\})|^(\{\*([\S\s]*?)\*\})|^(<\?(?:php\w+|=|[a-zA-Z]+)?)|^([     ]*[
]+[  ]*)|^(\{strip\})|^(\{\/strip\})|^(\{literal\})|^(\{\s{1,}\/)|^(\{\s{1,})|^(\{\/)|^(\{)|^(([\S\s]*?)(?=([    ]*[
]+[  ]*|\{|<\?)))|^([\S\s]+)/

Кто-нибудь знает, что означает ^(<\?(?:php\w+|=|[a-zA-Z]+)?) в приведенном выше шаблоне?

1 Ответ

2 голосов
/ 28 декабря 2010

Соответствует началу директив обработки XML. Кажется, он нацелен на php, так как явно соответствует <?php и <?=.

Тем не менее, он также соответствует прологу XML <?xml (или любой другой последовательности, такой как <?xcvsdfadf), так что реальная цель трудно определить.

  • ^: привязка в начале строки.
  • ( .. ): группировка, на которую будет ссылаться позже (возможно, из кода для извлечения).
  • \?: буквальный ?.
  • (?: .. | .. ): альтернативы (без извлечения), соответствует любому из | -разделенных подшаблонов.
    • ?: следование альтернативам означает, что его также можно полностью исключить. (ноль или единица)
  • php\w+: литерал php, за которым следуют один или несколько символов слова.
  • =: буквальный =
  • [a-zA-Z]+: один или несколько символов верхнего или нижнего регистра (только A-Z)

НТН.

...