如何使用PHP preg_replace替换String中的特定Substring

时间:2015-04-02 11:44:53

标签: php regex string replace preg-replace

我正在尝试使用preg_replace替换字符串中的单词或单词序列? 例如:

更改这些:

ABCExample to abcExample
AnotherExample to anotherExample
XyzAbcExample to xyzAbcExample

保持原样:

xyzExample to xyzExample 
new to new

2 个答案:

答案 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);