Разбить строку, отсортировать ее, затем объединить получившиеся разбиения в SPARQL - PullRequest
1 голос
/ 29 сентября 2019

Я пытаюсь разбить строку на основе определенного символа, а затем упорядочить результирующие строки в зависимости от определенного порядка, а затем объединить их в новую строку.

Пример: рассмотрите числовой порядок и - как разделитель 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)

}
...