我正在尝试编写一个捕获两组的正则表达式:第一个是一组 n 个单词(其中 n>= 0 并且它是变量),第二个是一组具有这种格式的对field:value
。在这两个组中,个人由空格分隔。最终,一个可选的空格将两个组分开(除非其中一个是空白/无)。
请考虑以下示例:
'the big apple'.match(pattern).captures # => ['the big apple', nil]
'the big apple is red status:drafted1 category:3'.match(pattern).captures # => ['the big apple is red', 'status:drafted1 category:3']
'status:1'.match(pattern).captures # => [nil, 'status:1']
我尝试了很多组合和模式,但我无法让它发挥作用。我最接近的模式是/([[\w]*\s?]*)([\w+:[\w]+\s?]*)/
,但在之前公开的第二种和第三种情况下它不能正常工作。
谢谢!