3v4l.org

run code in 300+ PHP versions simultaneously
<?php $urls = [ 'list/jhon/july-8-2023/', 'list/jhon-july-8-2023/', 'list/jhon/july-8-2023', 'list/jhon-july-8-2023', 'list/8-2023-jhon-july/', 'list/8-2023-jhon-july-some-thing-more-than-desired/', ]; $patterns = [ 'simple' => '^list/(\w+)-(.*)/$', 'explicit' => '^list/([a-z]+)-([a-z]+-\d{1,2}-\d{4})/?$', 'optional' => '^list/(\w+)[\-/](\w+-\d{1,2}-\d{4})/?$' ]; foreach($patterns as $type => $p) { echo $type . ' pattern ' . $p . PHP_EOL; foreach($urls as $url) { preg_match("#$p#", $url, $matches); if ($matches) { echo $url . ': ' . var_export($matches, true) . PHP_EOL; } } echo PHP_EOL . PHP_EOL; }

preferences:
14.13 ms | 405 KiB | 5 Q