我需要从两个不同的字符串中提取数字后面的数字和单位..某些字符串在数字和单位之间有空格,如150 g
而其他字符串不是150g
$text = 'Rexona Ap Deo Aerosol 150ml Active CPD-05923';
$text='Cutex Nail Polish Remover Moisture 100ml ';
preg_match_all('!\d+!', $text, $matches);
if(sizeof($matches[0]) > 1){
// how can I extract 'ml'
}
else {
// how can I extract 150 ml ?
}
你能帮忙吗?
答案 0 :(得分:4)
您可以使用:
preg_match_all('~\b(\d+(?:\.\d{1,2})?)\s*(ml|gm?|kg|cm)\b~i', $text, $matches);
并使用匹配的组#1和#2。
答案 1 :(得分:2)
这应该适合你:
preg_match_all('!(\d+\s?\S+)!', $text, $matches);