新手数字范围的正则表达式问题

kha*_*any 0 php regex

我真的应该优化我的正则表达式,但现在任何人都可以帮助...

((2,3,4,11,8),(5,44,67,78,32,22,111,234))
Run Code Online (Sandbox Code Playgroud)

如您所见,每个数字范围都以逗号分隔,在此示例中,有两个数字范围.

在实际场景中,可能有许多数字和少数范围.

所以...我如何将这样的东西提取到php嵌套数组或类似的东西?

任何帮助表示感谢

sha*_*mar 5

explode()明智地使用并按照以下方式执行:

$ranges = '((2,3,4,11,8),(5,44,67,78,32,22,111,234))';

//break into groups
$array = explode('),(', $ranges);

//trim any parenthesis left and then split by comma ,
foreach($array as &$group)
    $group = explode(',',trim($group, '()'));

//display result
var_dump($array);
Run Code Online (Sandbox Code Playgroud)

这输出:

array
  0 => 
    array
      0 => string '2' (length=1)
      1 => string '3' (length=1)
      2 => string '4' (length=1)
      3 => string '11' (length=2)
      4 => string '8' (length=1)
  1 => &
    array
      0 => string '5' (length=1)
      1 => string '44' (length=2)
      2 => string '67' (length=2)
      3 => string '78' (length=2)
      4 => string '32' (length=2)
      5 => string '22' (length=2)
      6 => string '111' (length=3)
      7 => string '234' (length=3)
Run Code Online (Sandbox Code Playgroud)