Я пытаюсь написать регулярное выражение, которое захватывает две группы: первая представляет собой группу из n слов (где n> = 0 и ее переменная), а вторая представляет собой группу пар с этим форматом field:value
, В обеих группах индивиды разделяются пробелами. В конце концов, дополнительное пространство разделяет две группы (если только один из них не пуст/ноль).Регулярное выражение для DSL
Пожалуйста, примите во внимание следующие примеры:
'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?]*)/
, но он не работает должным образом во втором и третьем случаях, ранее обнаруженных.
Спасибо!
ли Серия слова и поля: формат значения всегда в этом порядке? – Cyrbil
asiny желаемый результат уже в вопросе! Посмотрите на следующие примеры: D – tehAnswer
да, всегда слова приходят первыми! – tehAnswer