我正在尝试使用preg_replace
替换字符串中的单词或单词序列?
例如:
更改这些:
ABCExample to abcExample
AnotherExample to anotherExample
XyzAbcExample to xyzAbcExample
保持原样:
xyzExample to xyzExample
new to new
答案 0 :(得分:1)
我猜您正在寻找str_ireplace
。
此函数返回所有出现的字符串或数组 搜索主题(忽略大小写)替换为给定的替换 值。如果您不需要花哨的替换规则,通常应该 使用此函数代替preg_replace()和i修饰符。
示例代码(和sample program):
$res1 = str_ireplace("abc", "xyz", "ABCExample to abcExample");
echo $res1;
输出:xyzExample to xyzExample
答案 1 :(得分:1)
您需要使用preg_replace_callback
功能。
$str = <<<EOT
ABCExample
AnotherExample
XyzAbcExample
xyzExample
new
EOT;
echo preg_replace_callback('~(?m)^[A-Za-z]*?(?=(?:[A-Z][a-z]+)+$)~', function ($m)
{
return strtolower($m[0]);
}, $str);