BBCode列表和正则表达式

时间:2011-11-21 19:47:26

标签: php regex bbcode

我有一个像这样的列表的bbcode:

[list]
  [*]First item[]
  [*]Second item[]
  [*]Third item[]
[/list]

应该像这样替换。

<ul>
  <li>First item</li>
  <li>Second item</li>
  <li>Third item</li>
</ul>

或者这个:

[list=1]
  [*]One[]
  [*]Two[]
[/list]

到此:

<ol>
  <li>One</li>
  <li>Two</li>
</ol>

现在我使用这个正则表达式:

'/\[\*\](.*?)\[\]/' -> '<li>$1</li>'
'/\[list\](.*?)\[\/list\]/' -> '<ul>$1</ul>'
'/\[list\=1\](.*?)\[\/list\]/' -> '<ol>$1</ol>'

这个正则表达式的问题在于它不检查列表项(li)是否在列表中(ul或ol)。我该如何解决?

0 个答案:

没有答案