3v4l.org

run code in 300+ PHP versions simultaneously
<?php $txt = '!1 aaa !2 bb bb !5 cc cc cc !4 dd'; echo preg_replace('~!(\d+)\s*(.*?)\s*(?=!\d|$)~s', "<div class=\"x\$1\">\$2</div>\n", $txt);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
<div class="x1">aaa</div> <div class="x2">bb bb</div> <div class="x5">cc cc cc</div> <div class="x4">dd</div>

preferences:
53.72 ms | 1261 KiB | 4 Q