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

PHP正则提取商品文本仅匹配第一条记录,如何调整正则表达式?

问题根因

你现有的正则里,Itemname分组的规则强制要求商品名必须包含1位数字(即规则里的[\d]{1}部分),但第二条记录的商品名#PRESTIGE SS DLX ALPHA没有数字,因此匹配失败。

修正后正则

(?'SrNo'\d+)\s+(?'Itemname'#([A-Z\d\s.*-]*))\s+(?'MRP'[0-9.]*)

调整说明

仅将数字\d加入商品名字符允许范围,同时删除强制必须出现1位数字的规则,改动最小,完全兼容你原有命名分组的使用逻辑,不需要修改后续提取代码。

匹配验证

两行样本都可以正常提取对应字段:

  • 第一行匹配结果
    • SrNo:1
    • Itemname:#PRESTIGE COOKTOP 3B
    • MRP:6995.00
  • 第二行匹配结果
    • SrNo:3
    • Itemname:#PRESTIGE SS DLX ALPHA
    • MRP:2250.00

内容的提问来源于stack exchange,提问作者aniket ashtekar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:03