【发布时间】:2021-11-02 14:42:45
【问题描述】:
谁能帮我从类似于这些字符串的字符串中提取维度
Extending Garden Table 100 x 200 x 300 cm white
Extending Garden Table 200 x 200 cm black
Extending Garden Table 200 cm black Large
我只需要输出 100 x 200 x 300 cm 或 200 x 200 cm 或 200 cm,根据字符串包含的内容
我从下面的代码开始,以防它可以帮助一点
$string1 = "Extending Garden Table 100 x 200 x 300 cm white";
$test = get_dimensions($string1); //need it to output 100 x 200 x 300 cm
function get_dimensions($str) {
preg_match_all('/[0-9]{1,2}\X[0-9]{1,2}/i', $str, $matches);
//preg_match_all('!\d+!', $str, $matches);
return $matches;
}
【问题讨论】:
-
最后一个维度值后面总是有
cm字吗? -
并非总是如此。我刚刚创建了一个函数来输入变量为“cm”“m”“L”“kg”等。如果您知道这些“允许”单位是否可以从正则表达式中实现,那就太好了!
-
是的,请参阅this PHP demo。
-
@WiktorStribiżew 非常感谢你太棒了我很感激
标签: php regex preg-match preg-match-all