在 PHP 中的字符串中,在 5 个空格和 2 个新行之后分解一个字符串

Explode a string after 5 spaces and 2 new lines in a string in PHP

我试图在字符串中找到 2 个新行和 5 个或更多空格后严格分解字符串。但如果发现少于 5 个空格或 2 个新行,则不应爆炸。

到目前为止,我已经尝试了 preg_split("/\n\n\s\s\s\s\s*/"),但没有成功。

另外,我可以使用 explode 函数来达到这个目的吗?

I am trying to explode a string strictly after it finds 2 new lines and 5 or more spaces in a string.

如果 "new lines" 表示 \n,十进制 10 字符,"space" 表示常规 space,则需要使用

$chunks = preg_split('~\n{2} {5,}~', $input);

其中 \n{2} 正好匹配 2 个换行符号(注意前面可能还有更多),而 {5,} 匹配 5 个或更多正则 space。

换行可以用\r\n\r\n表示。然后,您可以使用 shorthand \R linbreak class:

$chunks = preg_split('~\R{2} {5,}~', $input);

如果你想匹配任意5+横白spaces,将space替换为\h'~\R{2}\h{5,}~'.

最后,如果你想确保在 2 个换行符之前没有换行符,请在开头添加一个否定的 lookbehind:'~(?<![\r\n])\R{2}\h{5,}~'.