在多个分隔符上将单个字符串拆分为数组
Splitting a single string to an array on more than one delimiter
是否可以爆出以下内容:
08 1.2/3(1(1)2.1-1
到 {08, 1, 2, 3, 1, 1, 2, 1, 1}
?
的数组
我尝试使用 preg_split("/ (\s|\.|\-|\(|\)) /g", '08 1.2/3(1(1)2.1-1')
但它没有返回任何结果。我尝试检查我的正则表达式 here,它匹配得很好。我在这里错过了什么?
您可以使用 preg_match_all():
$str = '08 1.2/3(1(1)2.1-1';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);
您应该使用 字符 class 包含要用于拆分的所有定界符。正则表达式字符 classes 出现在 [...]
:
中
<?php
$keywords = preg_split("/[\s,\/().-]+/", '08 1.2/3(1(1)2.1-1');
print_r($keywords);
结果:
Array ( [0] => 08 [1] => 1 [2] => 2 [3] => 3 [4] => 1 [5] => 1 [6] => 2 [7] => 1 [8] => 1 )
是否可以爆出以下内容:
08 1.2/3(1(1)2.1-1
到 {08, 1, 2, 3, 1, 1, 2, 1, 1}
?
我尝试使用 preg_split("/ (\s|\.|\-|\(|\)) /g", '08 1.2/3(1(1)2.1-1')
但它没有返回任何结果。我尝试检查我的正则表达式 here,它匹配得很好。我在这里错过了什么?
您可以使用 preg_match_all():
$str = '08 1.2/3(1(1)2.1-1';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);
您应该使用 字符 class 包含要用于拆分的所有定界符。正则表达式字符 classes 出现在 [...]
:
<?php
$keywords = preg_split("/[\s,\/().-]+/", '08 1.2/3(1(1)2.1-1');
print_r($keywords);
结果:
Array ( [0] => 08 [1] => 1 [2] => 2 [3] => 3 [4] => 1 [5] => 1 [6] => 2 [7] => 1 [8] => 1 )