帮助!我正在做一个替换,它将括号中的块转换为由<div>
s 包围的块。请看下文。
编码:
$data = '
<p>
{
asdf
asdf
asdf
}
</p>
';
echo preg_replace('%{(.*)}%m', '<div>\1</div>', $data);
输出应该是:
<p>
<div>
asdf
asdf
asdf
</div>
</p>
我在这里做错了什么?
帮助!我正在做一个替换,它将括号中的块转换为由<div>
s 包围的块。请看下文。
编码:
$data = '
<p>
{
asdf
asdf
asdf
}
</p>
';
echo preg_replace('%{(.*)}%m', '<div>\1</div>', $data);
输出应该是:
<p>
<div>
asdf
asdf
asdf
</div>
</p>
我在这里做错了什么?
使用s
修饰符而不是m
修饰符。
s
修饰符允许.
匹配换行符。
m
修饰符创建^
并匹配单个行的$
开始和结束,而不是整个字符串的开始和结束。
旁注:替换的首选语法是<div>$1</div>
使用s
修饰符。
preg_replace('%{(.*)}%s', '<div>\1</div>', $data);
使用s
代替m
;
echo preg_replace('~\{(.*)\}~s', '<div>\1</div>', $data);
只是一个建议,转义所有正则表达式专用的字符。