- preg_replace: documentation ( source)
<?php
$pattern = '~(?:(?<=<p class="code">\v)|(?!\A)\G\v*)^((?>(?!</p>)\V)*)(\v)~m';
$str = '
<p>hello see my css below</p>
<p class="code">
h1 {
font-size:10px
font-color:#FFF
}
h2 {
font-size:10px
font-color:#FFF
}
</p>
<p>123</p>
<p class="code">
1
2
3
</p>';
$str = preg_replace($pattern, '<code>\1</code>\2', $str);
echo $str;