Ruby:如何在保持分隔符和分隔符的同时拆分字符串的长度> 1?

use*_*574 1 ruby regex

以前的相关问题只有长度为== 1的分隔符.

我想要的是以下(例如)

str = 'Hello: Alice Hello: Bob Hello: Charlie Hello: David'
arr = str.magic_split('Hello:')

=> arr[0] = 'Hello: Alice '
   arr[1] = 'Hello: Bob '
   arr[2] = 'Hello: Charlie '
   arr[3] = 'Hello: David'
Run Code Online (Sandbox Code Playgroud)

我尝试过str.scan(/ Hello:/),但不知道如何破解正则表达式以使其工作.非常感谢.

我看到一些答案仅适用于这种特殊情况.让我更具体一点.

我要分割的文件如下所示,分隔符为"证书:"

Certificate:
    Data: ...
    Signature Algorithm: ...
...
-----BEGIN CERTIFICATE-----
F19ibG6uZyBJbmR1c3RyaWVzIEluYzESMBAGA1UECwwJTWV6emFuaW5lMRMwEQYD\n
2O2RV6HR84N2/A5ZPRF8AQMXJCLIR4qMe/d97/1XK6JQQLUI5NaNroUkW3+tjXo/\n
ovl3vom6xOwUUcFDdv2QoCYBVADX7W2RaVP0JGfiDcekOTwtdos/tmsblboR8oEp\n
fbxD45AowT+khXnPDCQWWpslXJoKMBkaWH7ajb+yKfEYGzRPEmq+v/FPMY9mlJhX\n
epciB5FNO5krO+cyhky5tBZTIv7qCu3kc36dcQXIOTakc7CdoVgwLnytebwTqtpG\n
KuLLH46U8Pp3eeiDDBxYJlz6a2bsbtOaKb1CKMFB3x8LLfLbF4Sh+ScDHetkJDh5\n
...
Certificate:
...
Certificate:
...
Run Code Online (Sandbox Code Playgroud)

基本上,在"证书:"之间会有随机的ASCII字符.

再次感谢.

Ste*_*han 5

试试这个正则表达式:

(Hello:\s+.+?)(?=Hello:|$)
Run Code Online (Sandbox Code Playgroud)

描述

正则表达式可视化

演示

http://rubular.com/r/l5WD6A1a2r