用正则表达式改变大小写


Changing case with regex

我找了一段时间,但没能找到任何答案。我需要在PHP中将字符串改为小写。
当然,这可以通过使用strtolower()来完成,但我想知道是否可以通过preg_replace()来完成。
我注意到,在vim中,可以在后面的引用中使用'L'U修饰符来更改大小写。

在PHP中可能这样做吗,即在preg_replace()中的第二个参数?我想通过preg_replace()改变情况的原因是,我听说它可能对UTF8字符串更好(不确定是否为真)。

谢谢。

你应该直接使用

 mb_strtolower($str, 'UTF-8')

这样,您指定utf-8编码,并且所有的工作应该很好。

编辑:对不起有支柱,改为较低。此外,您可以不使用utf-8,它应该会自动检测编码并使用正确的编码。

使用preg_replace 几乎不可能

这是因为您需要将strtolower()/strtoupper()作为参数传递给preg_replace函数。因为preg_replace不能自己行动。

使用Dave建议的函数