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

时间:2017-04-06 08:35:25

标签: php regex extract explode preg-split

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

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

另外,我可以使用爆炸功能来实现此目的吗?

1 个答案:

答案 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,}~'