使用preg_replace()和正则表达式将大写字符串替换为小写。

19

使用 preg_replace 和 regex 能否将大写字母替换成小写字母?

例如:

下面的字符串:

$x="HELLO LADIES!";

我想把它转换为:

 hello ladies!

使用preg_replace()函数:

 echo preg_replace("/([A-Z]+)/","$1",$x);

2
我认为你不能仅使用preg_replace来完成这个任务,因为没有模式可用。为什么不使用strtolower呢? - Alexandre Leprêtre
可能是如何使用preg_replace将字符串转换为小写的重复问题。 - u_mulder
5
使用 strtolower() 是不是一个过于简单的解决方案? - RiggsFolly
2
$x="HELLO LADIES!"; $x=strtolower($x); 如果您不需要 preg_ 函数,这是一个快速的一行代码。 - Funk Forty Niner
可能是如何在PHP中将数组值转换为小写?的重复问题。 - user5321787
1个回答

43

我认为这是你想要实现的目标:

$x="HELLO LADIES! This is a test";
echo preg_replace_callback('/\b([A-Z]+)\b/', function ($word) {
      return strtolower($word[1]);
      }, $x);

输出:

hello ladies! This is a test

正则表达式101演示:https://regex101.com/r/tD7sI0/1

如果您只是想将整个字符串转为小写,那么只需对整个字符串使用strtolower


3
我不知道使用strtolower()和preg_replace()组合起来会这么容易。谢谢Chris。 - Amit Verma
2
太棒了!我刚刚花费了很长时间来查找/了解如何在PHP的PCRE Regex中大写捕获组。我从未想过PHP可能有自己的本地函数来使用PHP转换捕获组,而不是使用正则表达式语法。 - Rounin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接