我有以下字符串,格式为country: Cum nameExtra info

Asia: Asian Cup - Play Offs
Asia: Asian Cup
Asia: World Cup - Qualification - First Stage
Australia: A-League
Belgium: Jupiler League - Championship Group
Brazil: Série A


我的问题是如何使用正则表达式分隔每行的信息。

更具体地说,我希望从第一行导出以下信息:

[ Asia, Asian Cup, Play Offs ]


从第二个信息

[ Asia, Asian Cup ]


等等。

目前,我尝试使用以下语句:

^([\w]+\:\s+)[^\-]+(?!\-\s)+


还没有完成,我不知道该如何继续。我的主要问题是我不知道该如何否定声明的一部分。

那么,解决这个问题的方法是什么呢?

这里有一个实时编辑示例:http://refiddle.com/refiddles/56b3960775622d40bb050000

最佳答案

您可以在PHP中尝试使用此正则表达式:

/^(\p{Lu}\p{L}*):\h*(.+?)(?:\h-\h(.+))?$/mu


RegEx Demo

08-17 20:36