我遇到了preg_match_all的问题。我有这个字符串:
$product_req = "ACTIVE-6,CATEGORY-ACTIVE-8,CATEGORY-ACTIVE-4,ACTIVE-9";
我需要在前面加上“ACTIVE-”而不是“CATEGORY-ACTIVE-”,所以在这种情况下结果应该是6,9。我使用了以下声明:
preg_match_all("/ACTIVE-(\d+)/", $product_req, $this_act);
然而,这将返回所有数字,因为所有数字实际上都在“ACTIVE-”之前,但这不是我的意思,因为我需要省略那些前面带有“CATEGORY-ACTIVE-”的数字。我如何配置preg_match_all来做到这一点?或者也许还有其他功能可以完成这项工作?
编辑:
我试过了:
preg_match_all("/CATEGORY-ACTIVE-(\d+)/", $product_req, $this_cat_act);
preg_match_all("/ACTIVE-(\d+)/", $product_req, $this_act);
$act_cat = str_replace($this_cat_act[1],"",$this_act[1]);
它有点工作,但我想有更好,更清洁的方法来做到这一点。除此之外,输出也有点奇怪。
谢谢。