如何使用PHP从字符串中提取符合格式要求的尺寸维度数据
PHP 实现商品字符串尺寸信息提取
实现思路
原有正则仅匹配了两段数字加x的结构,无法覆盖1段/3段数字的尺寸场景,我们可以直接匹配从数字开头到cm结尾的完整尺寸段,正则规则兼容x前后的空格、1~N段数字的尺寸格式。
完整代码实现
// 测试用例 $string1 = "Extending Garden Table 100 x 200 x 300 cm white"; $string2 = "Extending Garden Table 200 x 200 cm black"; $string3 = "Extending Garden Table 200 cm black Large"; function get_dimensions($str) { // 正则规则:匹配 数字 + (x + 数字)任意次数 + cm 的结构,兼容空格 preg_match('/\d+(?:\s*x\s*\d+)*\s*cm/i', $str, $matches); return $matches[0] ?? ''; } // 测试输出 echo get_dimensions($string1); // 输出 100 x 200 x 300 cm echo get_dimensions($string2); // 输出 200 x 200 cm echo get_dimensions($string3); // 输出 200 cm
规则说明
\d+:匹配尺寸开头的数字部分(?:\s*x\s*\d+)*:非捕获组,匹配0次或多次「x 加数字」的组合,自动适配1段/2段/多段尺寸的场景,同时兼容x前后的任意空格\s*cm:匹配尺寸结尾的cm单位,兼容单位前的任意空格- 末尾加
i标识忽略大小写,即使字符串里是大写CM也可以正常匹配
内容的提问来源于stack exchange,提问作者inventor
相关产品推荐
相关产品推荐

