Php 正则表达式和bbcode
我过去很少使用bbcodes或regex,但我找到了一些教程,帮助我找到了基本的方法。我想使用某种方法,所以我结合了这些教程中的一些方法来得到我想要的。唯一的问题是它不起作用。我收到一个错误,上面写着“编译失败:偏移量11处的括号不匹配”。我不知道偏移量11是什么意思,我检查了所有的括号,没有未闭合的集合。这是我的密码: 函数bbParse($string){ $codes=数组( “/\[b\]”(.+?)\[\/b\]/'=>“$1”, “/\[h2\](.+?)\[\/h2\]/”=>“$1”, “/\[h3\](.+?)\[\/h3\]/”=>“$1”, “/\[p\]”(.+?)\[\/p\]/'=>“$1”, “/\[quote\]”(.+?)\[\/quote\]/'=>“$1”, “/\[img\](.+?)\[\/img\]/”=>”, “/\[url=\(.+?)\](.+?)\[\/url\]/'=>” ); $string=preg_replace(数组_键($code)、数组_值($code)、$string); 返回$string; }Php 正则表达式和bbcode,php,regex,bbcode,Php,Regex,Bbcode,我过去很少使用bbcodes或regex,但我找到了一些教程,帮助我找到了基本的方法。我想使用某种方法,所以我结合了这些教程中的一些方法来得到我想要的。唯一的问题是它不起作用。我收到一个错误,上面写着“编译失败:偏移量11处的括号不匹配”。我不知道偏移量11是什么意思,我检查了所有的括号,没有未闭合的集合。这是我的密码: 函数bbParse($string){ $codes=数组( “/\[b\]”(.+?)\[\/b\]/'=>“$1”, “/\[h2\](.+?)\[\/h2\]/”=>“$
/\[url=\(.+?)\](.+?)\[\/url\]/
此正则表达式中的第一个分组参数被转义,使其成为文字括号字符。因此,关闭的一个没有匹配的打开参数。您需要删除第一个括号前面的\
,从而:
/\[url=(.+?)\](.+?)\[\/url\]/
/\[url=(.+?)\](.+?)\[\/url\]/
此正则表达式中的第一个分组参数被转义,使其成为文字括号字符。因此,关闭的一个没有匹配的打开参数。您需要删除第一个括号前面的\
,从而:
/\[url=(.+?)\](.+?)\[\/url\]/
似乎最后一个条目就是罪魁祸首。开头的父项用反斜杠转义,这可能不是您想要的。最后一个条目似乎是罪魁祸首。开头的父项用反斜杠转义,这可能不是您想要的。这里转义一个(
),因此它失败,因为没有(
到下一个)
:
'/\[url=\(.+?)\](.+?)\[\/url\]/'=>''
在这里您转义了一个(
),因此它失败了,因为没有(
到下一个)
:
'/\[url=\(.+?)\](.+?)\[\/url\]/'=>''
你问了9个问题,但没有被接受的答案。没有给任何人太多帮助的动力。我只是想指出这一点。你问了9个问题,但没有被接受的答案。没有给任何人太多帮助的动力。我只是想指出这一点。
$codes = array(
'/\[b\](.+?)\[\/b\]/' => '<b>$1</b>',
'/\[h2\](.+?)\[\/h2\]/' => '<h2>$1</h2>',
'/\[h3\](.+?)\[\/h3\]/' => '<h3>$1</h3>',
'/\[p\](.+?)\[\/p\]/' => '<p>$1</p>',
'/\[quote\](.+?)\[\/quote\]/' => '<blockquote>$1</blockquote>',
'/\[img\](.+?)\[\/img\]/' => '<img src=\'$1\' alt=\'Image Not Available\'>',
'/\[url=\(.+?)\](.+?)\[\/url\]/' => '<a href=\'$1\'>$2</a>'
);
$string = preg_replace(array_keys($codes), array_values($codes), $string);
return $string;
}</code>
'/\[url=\(.+?)\](.+?)\[\/url\]/' => '<a href=\'$1\'>$2</a>'