我需要找出一种使用 PHP 将 1 和 0 分成几部分的方法。
1001 would look like: array(100,1)
1001110110010011 would look like: array(100,1,1,10,1,100,100,1,1)
当序列以 0 开头时,情况会有所不同...我希望它将第一个 0 分割成自己的块,直到达到第一个 1(
00110110 would look like (0,0,1,10,1,10)
PHP如何做到这一点?
您可以使用preg_match_all
使用以下正则表达式拆分字符串:
10*|0
这匹配一个1
后跟一些0
,或者一个0
。由于正则表达式总是尝试按照它们发生的顺序匹配交替的部分,因此第二部分将只匹配前面没有1
的0
,即字符串开头的那些。PHP用法:
$beatstr = '1001110110010011';
preg_match_all('/10*|0/', $beatstr, $m);
print_r($m);
$beatstr = '00110110';
preg_match_all('/10*|0/', $beatstr, $m);
print_r($m);
输出:
Array
(
[0] => Array
(
[0] => 100
[1] => 1
[2] => 1
[3] => 10
[4] => 1
[5] => 100
[6] => 100
[7] => 1
[8] => 1
)
)
Array
(
[0] => Array
(
[0] => 0
[1] => 0
[2] => 1
[3] => 10
[4] => 1
[5] => 10
)
)
3v4l.org 演示