Если разделить строку на &
, это довольно просто, чтобы воссоединиться два первых/последних двух и преобразовать обратно в строку или массив:
words = "apple&banana&grape&apple".split('&')
# First query
words[0..1].join('&') + words[2..-1].join('&')
# Giving you: "apple&bananagrape&apple"
# Second query
[words[0..1].join('&'), words[2..-1].join('&')]
# Giving you: ["apple&banana", "grape&apple"]
Вы можете настроить это для разной длины полосы gs и разделители по мере необходимости.
Я предполагаю, что есть хорошее решение с помощью регуляторов регулярных выражений, но я не слишком жарко на них, поэтому надеюсь, что это поможет в некотором роде!
Я думаю, вы могли бы разбить его на каждом амперсанде, а затем присоединить первый, второй и третий и четвертый элементы результирующего массива снова вместе с амперсандами. –