是否可能爆炸以下内容:
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,它匹配得很好。我在这里想念什么?
答案 0 :(得分:3)
您应该使用一个 character类,其中包含要用于拆分的所有定界符。正则表达式字符类出现在[...]
中:
<?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 )
答案 1 :(得分:0)
您可以使用preg_match_all():
$str = '08 1.2/3(1(1)2.1-1';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);