2015-04-02 72 views
-1

我想用preg_replace替換字符串中的字或字符串序列? 例如:如何用PHP替換字符串中的特定子字符串preg_replace

更改這些:

ABCExample to abcExample 
AnotherExample to anotherExample 
XyzAbcExample to xyzAbcExample 

離開,因爲它是:

xyzExample to xyzExample 
new to new 
+3

*我想*在哪裏?我沒有看到任何嘗試 – Rizier123 2015-04-02 11:45:52

+0

爲什麼不使用爆炸? – Priyank 2015-04-02 11:47:20

+1

這裏有什麼問題?該功能有很好的文檔記錄,並附有清晰的例子。當事情沒有如預期的那樣工作時,你會閱讀文檔,不是嗎? http://php.net/manual/en/function.preg-replace.php – arkascha 2015-04-02 11:49:42

回答

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); 
1

我猜你正在尋找str_ireplace

該函數返回字符串或與給定的替換替換 值在受試者(忽略大小寫) 搜索的所有匹配的陣列。如果你不需要更換規則,你通常應該使用 而不是preg_replace()和i修飾符。

示例代碼(和sample program):

$res1 = str_ireplace("abc", "xyz", "ABCExample to abcExample"); 
echo $res1; 

輸出:xyzExample to xyzExample

相關問題