如何使用preg_place将字符串转换为小写

2022-03-22 00:00:00 unicode regex php preg-replace

我只是停留在这个问题上,找不到解决方案。 我想尝试使用preg_replace将字符串转换为小写。 我只是无法创建正确的正则表达式。 原因是正常的strtolower不支持Unicode字符。 我知道我可以使用mb_strtolower,但是这个函数似乎相当慢,而且并不是每个人都支持MB。

有什么线索吗?

问候您, RADEK

编辑:好的,非常感谢大家的帮助。我认为我的做法不太正确。 我认为最好使用这个:How do I detect non-ASCII characters in a string?,然后分别使用strtolower或mb_strtolower(如果可用)。


解决方案

Regex本身无法更改字符,它只能更改字符顺序和/或添加/删除部分字符。

有preg_replace_callback或/e标志,但它们只能使用已知函数进行操作,因此不能比strtolower做得更好。

如果您不能依赖mb_strolow函数的存在,则必须自己实现它。

相关文章