我需要从产品说明中提取首次出现的千兆字节属性。 使用我的regex preg_rex函数可以替换最后一个匹配项,但是我需要替换第一个匹配项(仅替换第一个匹配项)。
这是用于从CSV文件导入产品。
function getStringBetween($str, $to, $from){
echo preg_replace("/^.*$from([^$from]+)$to.*$/", '$1', $str);
}
$str = 'NGM YOU COLOR P550 DUAL SIM 5.5" IPS HD CURVO QUAD CORE 8GB RAM 1GB 4G LTE';
getStringBetween($str, "GB", " ");
来自字符串:“ NGM YOU COLOR P550 DUAL SIM 5.5” IPS HD CURVO QUAD CORE 8GB RAM 1GB 4G LTE”
我希望:8
返回1
答案 0 :(得分:1)
在之间使用正则表达式可能会有些困难。我建议使用量词\d+
来指定您要查找的数字字符,并使用preg_match
来获取第一个结果:
<?php
function getFirstGB($str){
if (preg_match("/(\d+)GB/", $str, $matches)) {
return $matches[1];
} else {
return false;
}
}
$str = 'NGM YOU COLOR P550 DUAL SIM 5.5" IPS HD CURVO QUAD CORE 8GB RAM 1GB 4G LTE';
echo getFirstGB($str);
PHP Playground here。