0

私は自分のサイト用に一種の BBCode を構築しています。現在、次のコードがあります。

$bbcode = array(
        ...
        '#\[ul\](.*?)\[/ul\]#is' => '<ul>$1</ul>',
        '#\[li\](.*?)\[/li\]#is' => '<li>$1</li>'
    );

私の問題は、リスト項目の間に多くの空きスペースを作成している を<li>追加した後です。<br />

正規表現に追加できるコードがあり、後で追加され[li]たものを無視/削除でき<br />ますか?

4

2 に答える 2

0

2つのステップでそれを行うことができますか(最初にbrで変更し、次に変更しないでください):

'#\[li\](.*?)(?:<br />)(.*?)\[/li\]#is' => '<li>$1$2</li>'
'#\[li\](.*?)\[/li\]#is' => '<li>$1</li>'

または、br が常に li の後にあり、他に何もない場合:

'#\[li\](?:\s*<br />)?(.*?)\[/li\]#is' => '<li>$1</li>'
于 2013-10-03T21:01:50.780 に答える
0

これを試して

$bbcode = array(
    ...
    '#\[li\]\s+(.*?)\[/li\]#is' => '<li>$1</li>'
);
于 2013-10-03T20:03:47.840 に答える