一行ごと囲む正規表現につてい
preタグないで囲ったものを php で一行ごとにliタグを挿入しようと考えています。
元ソース
<pre>
p {margin: 0;}
ul {margin: 0;}
ol {margin: 0;}
</pre>
を
<code>
<pre>
<ol>
<li>p {margin: 0;}</li>
<li>ul {margin: 0;}</li>
<li>ol {margin: 0;}</li>
</ol>
</pre>
</code>
の様に置き換える方法を探しています。
$content = preg_replace( '/(<pre>)(.*?)(<\\/pre>)/mis',"<code>$1\n<ol><li>\n$2\n</li></ol>\n$3\n</code>", $content );
で
<code>
<pre>
<ol><li>
p {margin: 0;}
ul {margin: 0;}
ol {margin: 0;}
</li></ol>
</pre>
</code>
までは出来ました。
改行ごとに</li><li>を挿入できればうまく行くと思うのですが、改行の正規表現が分かりません。
( '/(<pre>)(.*?)(\n?)(<\\/pre>)
など色々とやってみたのですがダメでした。
もしよろしかったら教えてください。
よろしくお願い致します。
お礼
html5doctorにマージン0があるのでしょうね。 その影響ですね。自分で上書きしてしまえばよいでしょうね。