我需要采用以下字符串并将其分成大块:

[ToNode = cup-subscriber] [原因=关键服务是
下来] [FromNode = cup-publisher] [AppID = Cisco UP Server Recovery Manager]

每个块都封装在方括号中。我正在Perl中寻求实现,并且正在寻找方法的方向。

谢谢!

最佳答案

您可以使用lookahead和lookbehind断言在][之间进行分割:

$str = '[ToNode=cup-subscriber][Reason=Critical service is down]
        [FromNode=cup-publisher][AppID=Cisco UP Server Recovery Manager]';

@pieces = split/(?<=\])(?=\[)/,$str;

See it

10-06 05:15