2013-03-18 17 views
0

我有一個字符串,它看起來是這樣的:更換每隔occurence不同的替代

$post = "Test $asd$ lol test asd $test$"; 

我希望它變成:

$post = "Test [bb]asd[/bb] lol test asd [bb]test[/bb]"; 

這是實現這個最簡單的/最佳途徑?請注意,$發生的次數因時而異。基本思想是分別用[b]替代其他所有事件[/ bb]。

我希望你能理解。

+1

您使用的是'$'符號在'雙引號「'文本塊PHP會認爲這些是變量名是。可能會出錯 – Kami 2013-03-18 12:33:08

回答

2

試試這個:

<?php 
$str = $post = 'Test $asd$ lol test asd $test$'; 
echo preg_replace('/\$(\w+)\$/','[bb]$1[/bb]',$str); 
?> 

輸出:

Test [bb]asd[/bb] lol test asd [bb]test[/bb] 
+2

請確保與(\ w +?)或([^ $] +)進行懶惰匹配 - 後者更好,因爲它也可以捕獲單詞輸入;也就是說,您可以匹配'$ lol !$'(但要確保在字符串中沒有其他「$」,並使用單引號輸入作爲上面的@Kami註釋) – mabi 2013-03-18 12:33:43