Я не уверен, какой язык вы ищете, но в Ruby вы можете просто использовать [String#split
] 1 (и вам не нужно регулярное выражение, простой строковый параметр подойдет ):
>> strings = ["kev-+kvs+-one-+gdl+-greg-+kvs+-two-+gdl+-les-+kvs+-three",
"-+gdl+-kev-+kvs+-one-+gdl+-greg-+kvs+-two-+gdl+-les-+kvs+-three",
"kev-+kvs+-one-+gdl+-greg-+kvs+-two-+gdl+-les-+kvs+-three-+gdl+-"]
>> split = strings.map {|s| s.split "-+gdl+-"}
=> [["kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"],
["", "kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"],
["kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"]]
Обратите внимание, что это имеет проблему с введением пустых полей в начале или в середине вашей строки. Если вам не нужны пустые поля, вам, вероятно, придется отфильтровать их впоследствии:
>> split.map {|a| a.reject {|s| s == ""}}
=> [["kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"],
["kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"],
["kev-+kvs+-one", "greg-+kvs+-two", "les-+kvs+-three"]]
Если вы не знакомы с ruby, то часть map
просто применяет одно и то же к каждому элементу в массиве, поэтому я могу продемонстрировать, как это применимо ко всем нашим примерам.