Php 我想要匹配的替换图案
我正在尝试替换匹配的字符串 参见下面的示例Php 我想要匹配的替换图案,php,regex,preg-replace,Php,Regex,Preg Replace,我正在尝试替换匹配的字符串 参见下面的示例 <?php $str="this is going to bold [[this]]"; echo preg_replace("/[[(.*)]]+/i","<b>$1</b>",$str); ?> 因此,输出将如下所示 这会让这个更大胆 编辑: 这是警告 警告:preg_replace[function.preg replace]:编译失败:在第7行的C:\xampp\htdocs\page.ph
<?php
$str="this is going to bold [[this]]";
echo preg_replace("/[[(.*)]]+/i","<b>$1</b>",$str);
?>
因此,输出将如下所示
这会让这个更大胆
编辑:
这是警告
警告:preg_replace[function.preg replace]:编译失败:在第7行的C:\xampp\htdocs\page.php中的偏移量0处没有重复的内容
试试这个:
试试这个尺码
<?php
$str="this is going to bold [[this]]";
echo preg_replace("/(?:\[\[)(.*?)(?:\]\])/i","<b>$1</b>",$str);
?>
试试这个尺码
<?php
$str="this is going to bold [[this]]";
echo preg_replace("/(?:\[\[)(.*?)(?:\]\])/i","<b>$1</b>",$str);
?>
您需要在正则表达式中转义方括号。最终表达式应如下所示:
echo preg_replace('/\[\[(.*?)\]\]/im', '<b>$1</b>', $str);
方括号是用于定义一组字符的特殊字符,因此,如果希望逐字匹配,则必须对其进行转义。您需要对正则表达式中的方括号进行转义。最终表达式应如下所示:
echo preg_replace('/\[\[(.*?)\]\]/im', '<b>$1</b>', $str);
方括号是用于定义一组字符的特殊字符,因此,如果您希望逐字匹配,则必须对其进行转义。[]是PCRE中的特殊字符,因此必须进行转义。此外,您可能希望使用非贪婪组..*?否则你会遇到一些有趣的粗体问题。我改为…echo preg_replace/[[+.*+]]/i,$1,$str;。。。。但我看到了这个输出……这将bold@user1331534检查我的答案。[]是PCRE中的特殊字符,因此必须转义。此外,您可能希望使用非贪婪组..*?否则你会遇到一些有趣的粗体问题。我改为…echo preg_replace/[[+.*+]]/i,$1,$str;。。。。但我看到了这个输出……这将bold@user1331534检查我的答案。+和。*之间有什么区别?@user1331534+表示模式要匹配一次或多次,而*表示它将被匹配零次或多次,这意味着它可能与任何内容都不匹配。@user1331534 Wikipedia中的示例:ab*c匹配ac、abc、abbc、abbbc等等。ab+c匹配abc、abbc、abbbc等等,但不是一个我想改进的问题。+和。*之间的区别是什么?@user1331534+表示模式要匹配一次或多次,而*表示它将被匹配零次或多次,这意味着它可能与任何内容都不匹配。@user1331534 Wikipedia中的示例:ab*c匹配ac、abc、abbc、abbbc等等。ab+c匹配abc、abbc、abbbc等等,但不是acon问题,我想改进这个
echo preg_replace('/\[\[(.*?)\]\]/im', '<b>$1</b>', $str);