PHP正则表达式搜索多行

dav*_*ave 3 php regex pcre

我在PHP中使用preg_*来搜索模式<!-- %{data=THIS GETS MATCHED}% -->并提取匹配的文本.

这种模式是:

preg_match('#<!-- %{' . $knownString . '\s*=\s*(.*?)}% -->#', ...)
Run Code Online (Sandbox Code Playgroud)

我想要它做的是搜索多行的字符串.例如:

<!-- %{data=
THIS GETS
MATCHED AND
RETURNED
}% -->
Run Code Online (Sandbox Code Playgroud)

如何编辑当前模式以获得此搜索功能?

Ale*_*nov 6

你应该添加"s" 模式修饰符,没有它匹配换行符之外的任何字符:

preg_match('#<!-- %{' . $knownString . '\s*=\s*(.*?)}% -->#s', ...)
Run Code Online (Sandbox Code Playgroud)