2016-09-16 58 views
-1

我需要在php中更改字符串或數字的出現次數。在這種情況下,我需要改變這一點,如果真的發生了:更改字符串內部的出現

[code:154545edppy] 
    // my code here 
[/code] 

這個

[code] 
    // my code here 
[/code] 

我需要驗證,如果字母和字符串內出現開去塊碼。我試圖用str_replace來做到這一點,但它不工作。

我現在代碼:

$text = "[code:54as] [/code]"; 

$text = str_replace("[code: {(\d)}{(\w)}]", "[code]", $text); 
$text = str_replace("[/code: {(\d)}{(\w)}]", "[/code]", $text); 

echo $text; 
+1

顯示您的代碼示例。 –

+0

代碼現在有 – DiChrist

+0

chris,我需要更改任何字符串和數字的出現,在'code'之後。這是一個例子,在實際情況下,代碼是不同的。用pleg_replace,我可以解決這個問題嗎? – DiChrist

回答

2

str_replace是靜態的。使用preg_replace與正則表達式,你可以完成你的任務。

喜歡的東西:

$text = "[code:54as] [/code]"; 
echo preg_replace('~(\[/?.*?):.*?\]~', '$1]', $text); 

應該這樣做。

PHP演示:https://eval.in/643544
正則表達式演示:https://regex101.com/r/mD1bM3/1

如果你只希望:後更換數字和字母代替第二.*?的使用字符類。 [A-Za-z\d]*?

+0

你好chris85,你的代碼在這個例子中起作用。我認爲這在我真實的情況下會起作用,但有些事情沒有奏效。在我的真實情況下,我需要改變的發生是這樣的:[code:54as ='joseph_willians']。代碼必須改變才能解決這個問題? – DiChrist

+0

你期待成爲'[code]'嗎?如果是這樣,它應該按原樣運行,https://eval.in/643545。 – chris85

+0

是的,就是這樣!我會更好地看到我的代碼,謝謝你! – DiChrist