我试图在字符串中找到2个新行和5个或更多空格后严格爆炸字符串。但如果发现少于5个空格或2个新行,则不应爆炸。
到目前为止,我已尝试preg_split("/\n\n\s\s\s\s\s*/")
,但这并没有成功。
另外,我可以使用爆炸功能来实现此目的吗?
答案 0 :(得分:1)
我试图在字符串中找到2个新行和5个或更多空格后严格爆炸字符串。
如果用“新行”表示\n
,十进制10
字符和“空格”表示常规空格,则需要使用
$chunks = preg_split('~\n{2} {5,}~', $input);
其中\n{2}
恰好匹配2个新的线符号(请注意前面可能有更多符号), {5,}
匹配5个或更多常规空格。
换行符可以用\r
,\n
,\r\n
表示。然后,您可以使用速记\R
简化类:
$chunks = preg_split('~\R{2} {5,}~', $input);
如果您想匹配任意5个以上的水平空格,请将空格替换为\h
,'~\R{2}\h{5,}~'
。
最后,如果你想确保在2行换行之前没有换行符,请在开头添加一个负面的lookbehind:'~(?<![\r\n])\R{2}\h{5,}~'
。