This is a line indented with four spaces
another one with eight spaces
now the last with four
这是我的字符串我想在四个空格上preg_split而不是更多,我正在使用,
preg_split('/^ /m', $str)
结果:
array(4) {
[0]=>
string(0) ""
[1]=>
string(41) "This is a line indented with four spaces
"
[2]=>
string(34) " another one with eight spaces
"
[3]=>
string(22) "now the last with four"
}
我希望有超过四个空格的行成为第一个分割的一部分,我很难理解非捕获或负前瞻正则表达式。
答案 0 :(得分:1)
要拆分4个空格而不是5号,你可以使用这个负向前瞻:
$arr = preg_split('/^ {4}(?! )/m', $str);
其中(?! )
为负前瞻,如果旁边有第5个空格,将无法在开始时匹配4个空格。
编辑要避免拆分数组中的空值,请使用:
$arr = preg_split('/^ {4}(?! )/m', $str, -1, PREG_SPLIT_NO_EMPTY);