You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP:如何用preg_match提取XYZZZ并将其存入$match[1]?

解决方案

你需要调整正则表达式的捕获组设置,把原本对应content属性值的捕获组改为非捕获组,让目标的XYZZZ成为第一个捕获组,具体修改如下:

推荐正则表达式(使用~作为分隔符,更简洁)

$pattern = '~<span class="m-product-data-3__price-value" itemprop="price" content="(?:.*?)">(.*?)</span>~si';

原格式兼容的正则表达式(保留原转义写法)

$pattern = '&lt;span class=\&quot;m-product-data-3__price-value\&quot; itemprop=\&quot;price\&quot; content=\&quot;(?:.*)\&quot;&gt;(.*?)&lt;/span&gt;si';

关键修改说明:

  • 将原正则中匹配content属性值的(.*)改为(?:.*?),(?:...)是非捕获组,不会将匹配内容存入$match数组
  • 原本对应XYZZZ的(.*?)现在成为第一个捕获组,匹配结果会存入$match[1]
  • 把结尾的<改为</span>,匹配更精准,避免误匹配其他标签的起始符号

内容的提问来源于stack exchange,提问作者Marek Korbus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:37:14