PHP preg_替换为换行符

PHP preg_替换为换行符,php,regex,Php,Regex,有点像这样的文字从数据库里出来 [color=#BF0000]This is just a very simple test. Cheers Fred[/color] 现在,该文本可以在[color…]和[/color]之间的任何位置上有换行符 在preg_replace中尝试使用这个正则表达式,这就是模式 \[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[\/color\]/i 并被替换为 <span style=\"colo

有点像这样的文字从数据库里出来

[color=#BF0000]This is just a very simple test. 
Cheers Fred[/color]
现在,该文本可以在
[color…]
[/color]
之间的任何位置上有换行符

在preg_replace中尝试使用这个正则表达式,这就是模式

\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[\/color\]/i
并被替换为

<span style=\"color:$1\">$2</span>
2美元

如果文本中没有换行符,一切都很好。我知道我需要对
(.*)
进行更改,但不知道该怎么做,有人能帮忙吗?

使用
s
修饰符使点匹配换行符:

'~\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z-]+)\](.*?)\[/color\]~is'
您还可以使用另一个regex分隔符来避免转义正斜杠。

对此很简单,我已经尝试了所有方法,但没有,谢谢