Я пытаюсь разбить строку на основе определенного символа, а затем упорядочить результирующие строки в зависимости от определенного порядка, а затем объединить их в новую строку.
Пример: рассмотрите числовой порядок и -
как разделитель 1-5-2-3
должен стать 1-2-3-5
.
Есть ли способ достичь этого?
Моя первая попытка - расщепление с использованием регулярных выражений, а затем сравнениерезультаты каждого результирующего разделения делятся на следующие, однако это не работает, поскольку нет способа сохранить промежуточную результирующую строку.
SELECT ?url ?url1
WHERE {
BIND ("1-2-3" as ?urls)
VALUES ?n {0 1 2 } # Split at most 10 URLs mangled together
VALUES ?m {0 1 2 }
BIND (concat("^((.+?-)?){", str(?n) ,"} *") AS ?newvar)
BIND (replace(?urls, ?newvar, "") AS ?remaining)
BIND (replace(?remaining, "-.+", "") AS ?url)
BIND (concat("^((.+?-)?){", str(?n + 1) ,"} *") AS ?newvar1)
BIND (replace(?urls, ?newvar1, "") AS ?remaining1)
BIND (replace(?remaining1, "-.+", "") AS ?url1)
}