如何编辑这个preg_replace来替换这个序列?

时间:2015-11-26 20:06:08

标签: php preg-replace

我正在尝试从下面的代码中删除_7935918,它是在html文件中使用

$str = preg_replace('/.*?(.*?)(_[0-9]{7})/', '$1', $html);

<span id="cld_tle_7935918" class="p_to" id="">
没有运气。 所以我的意思是将其保留为<span id="cld_tle" class="p_to" id="">

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

拥有.*(.*?)是没有意义的:您期望使用该捕获组捕获什么?

相反,您可以明确要求您只想在带引号的字符串中进行替换。此外,我认为可以合理地预期数字位数可能并不总是正好为7.是否可以要求至少2位数,但也可以替换更多位数?

我会建议:

$str = preg_replace('/"([\w_]*?)_[0-9]{2,}"/', '"$1"', $html);

您可以将{2,}增加到您认为最合适的位置。