使用preg_replace

时间:2019-02-05 00:34:20

标签: php regex preg-replace

我需要从产品说明中提取首次出现的千兆字节属性。 使用我的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

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