Php 正则表达式和bbcode

Php 正则表达式和bbcode,php,regex,bbcode,Php,Regex,Bbcode,我过去很少使用bbcodes或regex,但我找到了一些教程,帮助我找到了基本的方法。我想使用某种方法,所以我结合了这些教程中的一些方法来得到我想要的。唯一的问题是它不起作用。我收到一个错误,上面写着“编译失败:偏移量11处的括号不匹配”。我不知道偏移量11是什么意思,我检查了所有的括号,没有未闭合的集合。这是我的密码: 函数bbParse($string){ $codes=数组( “/\[b\]”(.+?)\[\/b\]/'=>“$1”, “/\[h2\](.+?)\[\/h2\]/”=>“$

我过去很少使用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; }
/\[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>'