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

如何使用preg_match结合正则表达式提取价格符号前的文本?

正则提取尺寸文本解决方案
  • 针对给定的文本行,要提取出“Medium Size”或“Small Size”,可以使用如下正则表达式:
    /^\d+\.\s*(.+?)\s*[+-]/
    
  • 正则说明:
    • ^\d+\.:匹配开头的序号数字和点号
    • \s*:匹配序号与尺寸之间的任意空格(包括0个)
    • (.+?):非贪婪模式匹配尺寸文本,确保只取到+/-符号之前的内容
    • \s*:匹配尺寸与符号之间的任意空格
    • [+-]:以+或-作为结束标记,限定提取范围
  • PHP代码示例:
    // 处理第一行文本
    $line1 = "1. Medium Size +CA $33.00";
    preg_match('/^\d+\.\s*(.+?)\s*[+-]/', $line1, $match1);
    echo $match1[1]; // 输出:Medium Size
    
    // 处理第二行文本
    $line2 = "2. Small Size -CA $4.00";
    preg_match('/^\d+\.\s*(.+?)\s*[+-]/', $line2, $match2);
    echo $match2[1]; // 输出:Small Size
    
  • 之前尝试的正则问题分析:
    • (\S+)仅能匹配连续非空白字符,只能提取到单个单词(如“Medium”“Small”),无法获取完整的尺寸名称
    • (\S+\s+)会匹配“Medium ”(带末尾空格),同样无法覆盖双单词的尺寸文本

内容的提问来源于stack exchange,提问作者Joshua Loo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:00:02