red*_*ent 0 php regex preg-replace
帮助!我正在做一个替换,将括号内的块转换为 s 包围的块<div>。请看下文。
代码:
$data = '
<p>
{
asdf
asdf
asdf
}
</p>
';
echo preg_replace('%{(.*)}%m', '<div>\1</div>', $data);
Run Code Online (Sandbox Code Playgroud)
输出应该是:
<p>
<div>
asdf
asdf
asdf
</div>
</p>
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
使用s修饰符而不是m修饰符。
该s修饰符允许.匹配换行符。
修饰符m使^并$匹配各行的开头和结尾,而不是整个字符串的开头和结尾。
旁注:替换的首选语法是<div>$1</div>