<?php
$strings = [
'dir1summary',
'dir10summary',
'dir1summarydue',
'dir10summarydue',
'directive1',
'directive10',
'directivecode1',
'directivecode10',
];
var_export(preg_replace_callback('/dir(?:ective)?(\D*)(\d+)(.*)/', function ($m) {
return "directive{$m[1]}{$m[3]}" . str_pad($m[2], 2, "0", STR_PAD_LEFT);
}, $strings));
preferences:
24.26 ms | 406 KiB | 5 Q