用特定字符串替换特定组

Replace certain group by certain string

我想根据字符串的格式用不同的模式替换字符串。例如: 模式 Y-m-d 应替换为 \d{4}-\d{2}-\d{2}m-d-Y 应该是 \d{2}-\d{2}-\d{4} 等等。

我用了 preg_replace() 两次。一个用于替换 \m|d\,另一个用于替换 \Y\

$pattern = preg_replace("/m|d/", "\d{2}", $format);
$pattern = preg_replace("/Y/", "\d{4}", $pattern);

我想知道如何通过单一正则表达式来完成。您的帮助将不胜感激。

谢谢

preg_replace 可以作用于数组:

$pat = array('/m/', '/d/', '/Y/');
$repl = array('\d{2}', '\d{2}', '\d{4}');

$pattern = preg_replace($pat, $repl, $pattern);