将 [ 和 ] 替换为 <b> 和 <b>
Replacing [ and ] with <b> and <b>
我正在尝试将 [ 和 ] 转换为 和
字符串
$str="I don't [wanna] be a bus [driver] all my [life]";
我想要这个输出
I don't <b>wanna</b> be a bus <b>driver</b> all my <b>life</b>
[] 中的任何单词都应该是 粗体
到目前为止,这是我的代码:
$str="I don't [wanna] be a bus [driver] all my [life]";
echo preg_replace("#[]#","<b></b>",$str);
但它不起作用,它 returns 字符串原样
I don't [wanna] be a bus [driver] all my [life]
有什么想法吗?谢谢
试试这个:
$str="I don't [wanna] be a bus [driver] all my [life]";
$pattern=array();
$pattern[0]="/\[/";
$pattern[1]="/\]/";
$replacement=array();
$replacement[0]="<b>";
$replacement[1]="</b>";
echo preg_replace($pattern,$replacement,$str);
查看实际效果 here
如上所述,该问题不需要正则表达式:
print strtr($str, [
'[' => '<b>',
']' => '</b>',
]);
如果你还想要正则表达式,它是这样的:
print preg_replace(
'~\[(.+?)\]~',
"<b></b>",
$str);
括号被转义,因为它们在正则表达式中有特殊含义。在替换字符串中,</code> 表示第一个捕获的组 <code>(.+)
.
你可以用一张 preg_replace。
你可以在这里测试https://regex101.com/r/sZ6tJ7/1
并查看生成的 PHP 代码:
$re = "/(\[)([^\]]*)(\])/";
$str = "I don't [wanna] be a bus [driver] all my [life]";
$subst = "<b></b>";
$result = preg_replace($re, $subst, $str);
$str="I don't [wanna] be a bus [driver] all my [life]";
$pattern=array("/\[/","/\]/");
$replacement=array("<b>","</b>");
echo $output = preg_replace($pattern,$replacement,$str);
我正在尝试将 [ 和 ] 转换为 和
字符串
$str="I don't [wanna] be a bus [driver] all my [life]";
我想要这个输出
I don't <b>wanna</b> be a bus <b>driver</b> all my <b>life</b>
[] 中的任何单词都应该是 粗体
到目前为止,这是我的代码:
$str="I don't [wanna] be a bus [driver] all my [life]";
echo preg_replace("#[]#","<b></b>",$str);
但它不起作用,它 returns 字符串原样
I don't [wanna] be a bus [driver] all my [life]
有什么想法吗?谢谢
试试这个:
$str="I don't [wanna] be a bus [driver] all my [life]";
$pattern=array();
$pattern[0]="/\[/";
$pattern[1]="/\]/";
$replacement=array();
$replacement[0]="<b>";
$replacement[1]="</b>";
echo preg_replace($pattern,$replacement,$str);
查看实际效果 here
如上所述,该问题不需要正则表达式:
print strtr($str, [
'[' => '<b>',
']' => '</b>',
]);
如果你还想要正则表达式,它是这样的:
print preg_replace(
'~\[(.+?)\]~',
"<b></b>",
$str);
括号被转义,因为它们在正则表达式中有特殊含义。在替换字符串中,</code> 表示第一个捕获的组 <code>(.+)
.
你可以用一张 preg_replace。
你可以在这里测试https://regex101.com/r/sZ6tJ7/1
并查看生成的 PHP 代码:
$re = "/(\[)([^\]]*)(\])/";
$str = "I don't [wanna] be a bus [driver] all my [life]";
$subst = "<b></b>";
$result = preg_replace($re, $subst, $str);
$str="I don't [wanna] be a bus [driver] all my [life]";
$pattern=array("/\[/","/\]/");
$replacement=array("<b>","</b>");
echo $output = preg_replace($pattern,$replacement,$str);