sta*_*een 1 php regex preg-replace
我正在尝试更改字符串中文本的颜色:
我的字符串:
$message="I have a [red][car]";
Run Code Online (Sandbox Code Playgroud)
我想捕获第一个[...]和第二个[...]内的值,然后使用它
<b style='color:color'>car</b>
Run Code Online (Sandbox Code Playgroud)
根据第一个[...]的值更改文本颜色
到目前为止,我有:
echo preg_replace("/\[([^\]]+)\]\[([^\]+])\]/i","<b style='color:$1'>$2</b>",$message);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,orignal字符串作为输出返回.我不知道我的正则表达式失败了.
请帮忙!
纠正的正则表达式是:
'/\[([^\]]+)]\[([^\]]+)]/'
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
请注意,您不必]在字符类之外转义,也不需要/i修饰符,因为模式中没有字母.此外,要正确转义特殊的正则表达式字符,您需要在双引号字符串中双重转义,或使用单引号字符串.
$message="I have a [red][car]";
echo preg_replace('/\[([^\]]+)]\[([^\]]+)]/',"<b style='color:$1'>$2</b>",$message);
// => I have a <b style='color:red'>car</b>
Run Code Online (Sandbox Code Playgroud)