Ответ 1
Если вы в буквальном смысле означаете (...)
, это группа, которая соответствует ровно трем символам. (.+)
будет соответствовать одному или нескольким любым символам, кроме...
По умолчанию .
соответствует любому, кроме строк новой строки.
s (PCRE_DOTALL)
Если этот модификатор установлен, метасимвол точки в шаблоне соответствует всем символам, включая символы новой строки. Без него символы новой строки исключаются.
Используйте s
модификатор, чтобы .
соответствовал символам новой строки.
/your pattern/s
Пример (также здесь):
$str = <<<STR
{for 7 times}
App2
{endfor}
STR;
preg_match('/({for) (\d+) (times})(.+)({endfor})/s', $str, $matchParts);
print_r($matchParts);
OUTPUT:
Array
(
[0] => {for 7 times}
App2
{endfor}
[1] => {for
[2] => 7
[3] => times}
[4] =>
App2
[5] => {endfor}
)