从数据库中得到的文本有点像这样
[color=#BF0000]This is just a very simple test.
Cheers Fred[/color]
现在,该文本可以在[color...]
和[/color]
之间的任何位置都有换行符。
一直试图在preg_replace中使用此regex,这是模式
'[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z'-]+)'](.*?)'['/color']/i
并被取代
<span style='"color:$1'">$2</span>
如果文本中没有换行符,一切都会很好。我知道我需要围绕(.*?)
做出改变,但不知道怎样,有人能帮我吗?
使用s
修饰符使点匹配换行符:
'~'[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z-]+)'](.*?)'[/color']~is'
此外,您还可以使用另一个正则表达式分隔符来避免转义正斜杠。