順序付きリストをフォーマットするマークアップを作成しようとしています。マークアップ スタイルは次のとおりです。
$strings = "1. dog
1. cat
1. fish
1. horse
1. monkey
1. pig
";
horse
番号の前に1つのスペースがあるため、monkey
そのリストからサブリストの一部にする必要があります。私が使用しているコードは次のとおりです。
function blq($match){
$str = preg_replace("/^1\. (.+?)$/m", "<li>$1</li>", $match[0]);
$str = preg_replace_callback("/(?:^1\. .+(\n|$))+/m", 'blq', $str);
return "<ol>$str</ol>";
}
$string = preg_replace_callback("/(?:^ ?1\. .+(\n|$))+/m", 'blq', $strings);
echo $string;
そのコードはこの出力を作成しています:
<ol><li>dog
</li>
<li>cat
</li>
<li>fish
</li>
1. horse
1. monkey
<li>pig
</li>
</ol>
horse
サブリストとして作成さmonkey
れず、単に無視されました。答えに近づいた気がしますが、その答えにたどり着くにはどうすればよいかわかりません...
無制限の数のサブリストを許可したいことに注意してください