2014-02-21 75 views
1

我想取代我已經編寫這樣PHP複雜的preg_replace

jsbdahsbdaisd [[aaa]]ID1#random text 1[[/aaa]] asdasdasd [[aaa]]ID2#random text 2[[/aaa]] 

喜歡的東西

jsbdahsbdaisd <span onclick="function(ID1)">random text 1</span> asdasdasd <span onclick="function(ID2)">random text 2</span> 

是否有可能在一個符合了preg_replace做這樣的字符串?

感謝

+1

可能呀,你嘗試過什麼?我們不在這裏做你的工作。至少表現出一些努力。 – HamZa

+1

如果字符串是這樣的:'[[aaa]] asd [[aaa]] blabla [[/ aaa]] [[/ aaa]]''會發生什麼? – ohaal

+1

[當然 - 只需用' \ 2'](http://regex101.com/r/gM9pU3) – h2ooooooo

回答

0

我這樣做是爲查找/替換:

<?php 

$string = 'jsbdahsbdaisd [[aaa]]ID1#random text 1[[/aaa]] asdasdasd [[aaa]]ID2#random text 2[[/aaa]]'; 

$new_string = preg_replace('/\[\[aaa\]\](ID[0-9]+)#([-A-Z0-9 _.]+)\[\[\/aaa\]\]/i', '<span onclick="function($1)">$2</span>', $string); 

print $new_string; 

此輸出:

jsbdahsbdaisd <span onclick="function(ID1)">random text 1</span> asdasdasd <span onclick="function(ID2)">random text 2</span> 
+0

太棒了!謝謝,我瘋了,試圖解決這個問題。 – user3337480