В регулярном выражении вам, вероятно, придется использовать что-то «сложное», например preg_replace_callback
(чтобы можно было применить функцию strtoupper
или ucwords
), что сделает ваш код, по крайней мере, более трудным для понимания - и, возможно, медленнее, но самое главное, что ваш код легко понять.
Учитывая ваше решение просто работает и является простым и легким , я бы, вероятно, сохранил бы его, если бы я был на вашем месте.