Home  >  Article  >  Backend Development  >  正则表达式 - PHP,正则替换如何写?

正则表达式 - PHP,正则替换如何写?

WBOY
WBOYOriginal
2016-06-06 20:19:101218browse

有字符串:'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+)\]/','',$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+)\]/','',$str);

lz请原谅我很久没用PHP了。str_replace函数什么的。

考虑到正则表达式基本是共通的。我从js的角度回答下,lz权且一看吧。

<code class="javascript">var str = 'sdfUjer[ema14]XX[emb15],43你56^&%^%我[emc7]]]]]]';
var regex = /\[em([a-zA-Z]+\d+)\]/g;
var result = str.replace(regex , '');
console.log(result === 'sdfUjer<a14>XX<b15>,43你56^&%^%我<c7>]]]]]');</c7></b15></a14></code>

<code>$str = "[ema14]XXX[emb15]XXX[emc77]";
$pattern = '/\[em([^\]]*)\]/';
$resultArr = array();
$index = 0;
function replaceStr ($arr) {
GLOBAL $resultArr;
$resultArr[] = "";
}
preg_replace_callback($pattern, 'replaceStr', $str);
$str = implode("", $resultArr);</code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn