在 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,}~'
.
我试图在字符串中找到 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,}~'
.