帮助!我正在进行替换,将括号内的块转换为<div>
s包围的块。请参阅下文。
代码:
$data = '
<p>
{
asdf
asdf
asdf
}
</p>
';
echo preg_replace('%{(.*)}%m', '<div>\1</div>', $data);
输出应为:
<p>
<div>
asdf
asdf
asdf
</div>
</p>
我在这里做错了什么?
答案 0 :(得分:4)
使用s
修饰符代替m
修饰符。
s
修饰符允许.
匹配换行符。
m
修饰符使^
和$
匹配各行的开头和结尾,而不是整个字符串的开头和结尾。
附注:替换的首选语法是<div>$1</div>
答案 1 :(得分:2)
使用s
修饰符。
preg_replace('%{(.*)}%s', '<div>\1</div>', $data);
答案 2 :(得分:1)
使用s
代替m
;
echo preg_replace('~\{(.*)\}~s', '<div>\1</div>', $data);
只是一个建议,逃避所有对正则表达式特殊的字符。