php
  • regex
  • 2014-10-29 161 views 0 likes 
    0

    我對正則表達式有疑問。我想用一個字符串中的2個字符替換一個特定的文本。如何替換字符串中的2個字符之間的特定文本

    例子:

    $my_string = "[email protected]@[email protected]@weludud"; 
    $new_text = 'replaced_text"; 
    

    在myabove字符串我想更換我的人物之間的文本@@。所以在上面的字符串中,我想用replace_text替換random_text。

    所以我的輸出將是replace_text。看到演示[email protected]@[email protected]@weludud

    +0

    請顯示您的正則表達式 – rnevius 2014-10-29 08:40:40

    +0

    「@@ ... @@'組合是否僅在字符串中出現一次? – Michel 2014-10-29 08:40:54

    +0

    是的米歇爾它只出現一次 – 2014-10-29 08:42:33

    回答

    0
    0
    $my_string = "[email protected]@[email protected]@weludud"; 
    $replace = 'replaced_text'; 
    $replaced_text = preg_replace('#(@)(.*)(@)#si', "$1$replace$3", $my_string); 
    echo $replaced_text; 
    

    Working demo

    2

    如果@@ text @@字符串中只出現一次,可以使用explode

    $my_string = "[email protected]@[email protected]@weludud"; 
    $new_text = 'replaced_text'; 
    $var = explode('@@',$my_string); //create an array with 3 parts, the middle one being the text to be replaced 
    
    $var[1]=$new_text; 
    
    $my_string=implode('@@',$var); 
    
    相關問題