有字串:'sdfUjer[ema14]XX[emb15],43你56^&%^%我[emc7]]]]]]'
其中 [ema14],[emb15],[emc7],是要替換的內容,
'[em'開頭,']'結束,中間由字母加數字組成
將所有符合這個結構的,全替換成,,
最後應該得到這樣的字串:'sdfUjerXX,43你56^&%^%我]]]]]'
----------更新------------
樓下
文藺[1]:http://segmentfault.com/u/wemlin
的答案可以正確替換,
preg_replace('/\[em([a-zA-Z]+\d+)\]/','<$1>',$str);
回複內容:
有字串:'sdfUjer[ema14]XX[emb15],43你56^&%^%我[emc7]]]]]]'
其中 [ema14],[emb15],[emc7],是要替換的內容,
'[em'開頭,']'結束,中間由字母加數字組成
將所有符合這個結構的,全替換成,,
最後應該得到這樣的字串:'sdfUjerXX,43你56^&%^%我]]]]]'
----------更新------------
樓下
文藺[1]:http://segmentfault.com/u/wemlin
的答案可以正確替換,
preg_replace('/\[em([a-zA-Z]+\d+)\]/','<$1>',$str);
lz請原諒我很久沒用PHP了。str_replace函數什麼的。
考慮到Regex基本是共通的。我從js的角度回答下,lz權且一看吧。
var str = 'sdfUjer[ema14]XX[emb15],43你56^&%^%我[emc7]]]]]]';var regex = /\[em([a-zA-Z]+\d+)\]/g;var result = str.replace(regex , '<$1>');console.log(result === 'sdfUjerXX,43你56^&%^%我]]]]]');
$str = "[ema14]XXX[emb15]XXX[emc77]";$pattern = '/\[em([^\]]*)\]/';$resultArr = array();$index = 0;function replaceStr ($arr) {GLOBAL $resultArr;$resultArr[] = "<" . $arr[1] .">";}preg_replace_callback($pattern, 'replaceStr', $str);$str = implode("", $resultArr);