如何修改preg_match规则同时提取两个meta标签中的访问量数字
问题原因
你现有代码的正则表达式硬编码了Egypt. 作为前缀,仅能匹配包含该字段的$url1,$url2中没有该前缀,因此无法命中匹配规则。
解决代码
直接匹配visits之前的数字(含千位分隔符逗号)即可,适配两个场景:
// 正则匹配:提取visits前所有由数字、逗号组成的内容 preg_match("/([\d,]+)\s+visits/i", $url, $matches); // 过滤掉非数字字符,得到纯数字结果 $visitCount = preg_replace("/[^0-9]/", "", $matches[1]); print $visitCount;
正则说明
[\d,]+:匹配由数字、逗号组成的连续字符,刚好命中20,956、2,894,865这类带千位分隔符的数字格式\s+visits:匹配数字后面的空格加visits关键词,精准锁定目标位置- 没有绑定固定前缀,只要meta内容里存在「数字+逗号组合 + 空格 + visits」的结构就能匹配,兼容两个url的场景
内容的提问来源于stack exchange,提问作者Dr.Mezo
相关产品推荐
相关产品推荐

