php如何一个正则提取出"100kg"里的数字和单位啊?

单位只有kgg两种

就是想学习下正则,目前遇到的问题,已经用其他方法解决了

阅读 8.7k
5 个回答

楼上的应该通通不对.

楼上匹配出来的应该是 数字 或 kg|g 这三个字符组成的字符串, 像如下这种:

'12345';
// 或者
'kg|kgkg' // 这种

如下正则才是对的

$pattern = '/(\d+)(kg|g)/';
提取数字
[\d]+

提取单位
[kg|g]+

将结果提取出来存储到数组中
$sStr = "100kg";
preg_match_all("/[\d]+|[kg|g]+/",$sStr,$aMatch);
Array
(
    [0] => Array
        (
            [0] => 100
            [1] => kg
        )

)

preg_match_all('/[d(.d)?]+|[a-zA-Z]{1,}/','100kk',$m);
var_dump($m);

/[d]+|[Kg|g]+/

答案楼上有了,我就扩充了一下,兼容了小数

'/[\d.\d]+|[kg|g]+/'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏