Preg_match匹配连续三个数字的子字符串



我有一个字符串$text_arr="101104105106109111112113114116117120122123124"相当大的字符串

如果我想从它们中分离出三个数字,比如101,104,105,并将它们存储在$array中,我该怎么做?

I tried doing this:

preg_match_all('/[0-9]{3}$/',"$text_arr",$array); 

最简单的方法是使用preg_split() Docs:

$result = preg_split('/(d{3})/', $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

看到它在工作,或者结果:

Array
(
    [0] => 101
    [1] => 104
    [2] => 105
    [3] => 106
    [4] => 109
    [5] => 111
    [6] => 112
    [7] => 113
    [8] => 114
    [9] => 116
    [10] => 117
    [11] => 120
    [12] => 122
    [13] => 123
    [14] => 124
)

虽然可以使用正则表达式,但是使用一个简单的标准函数可能会更高效:

$groups = str_split($numbers, 3);//returns array you want

阅读这里

您必须从表达式中删除$结尾,它导致只返回一个结果

try like this

preg_match_all('/[0-9]{3}/', $text_arr, $array); 

check this working here

选择最简单的代码

<?php
    $string = "101104105106109111112113114116117120122123124";
    $parts = str_split($string, 3);
    $res=implode(',',$parts);
    echo($res);
?>

最新更新