使用正则表达式从字符串中提取前N个数字

时间:2012-03-16 12:07:28

标签: php regex

我正在尝试清理一些数据,这些数据在字符串的开头有N个数字,在其余部分有一些数字。我只需要提取N个第一个数字。

这是一个示例字符串

1410{{data}} est un program56me de lв556Ђ™
122 datadatadata5654df sdfs989
123datadatadata5654df sdfs989

我需要得到

的结果
1410,122,123

5 个答案:

答案 0 :(得分:6)

怎么样:

$str = preg_replace('/^(\d+).*$/', "$1", $str);

答案 1 :(得分:3)

尝试使用此正则表达式:

^([0-9]+)?

使用preg_match命令。

它会在字符串的开头发现连续数字序列。 : - )

示例:

function getInitial($line)
{
    $regex = "^([0-9]+)?";
    preg_match($regex, $line, $match);

    return $match[1];
}

答案 2 :(得分:1)

这应该可以解决问题:^(\d+)。它将指示正则表达式引擎从字符串的开头开始,匹配一个或多个数字并将它们放在一个组中。任何其他字符都将被忽略。

答案 3 :(得分:1)

据我了解,每行开头至少需要N位数字:

preg_match_all("/^(\d{3,})/m", $text, $matches, PREG_SET_ORDER);
print_r($matches);

答案 4 :(得分:0)

一个可能的正则表达式可能是'#^(\ d +)#':除了php函数preg_match('#^(\d+)#',$string,$param);之外,$ param [1]将返回这些数字