Я использую эту строку в запросе SPARQL в моей программе на python:
FILTER regex(?name, "%s", "i" )
(где %s
- текст поиска, введенный пользователем)
Я хочу эточтобы соответствовать, если ?name
или ?featurename
содержит %s
, но я не могу найти какую-либо документацию или учебник для использования regex ().Я попробовал пару вещей, которые показались бы разумными:
FILTER regex((?name | ?featurename), "%s", "i" )
FILTER regex((?name || ?featurename), "%s", "i" )
FILTER regex((?name OR ?featurename), "%s", "i" )
FILTER regex((?name, ?featurename), "%s", "i" )
и каждый из них без ()
FILTER regex(?name, "%s", "i" ) || regex(?featurename, "%s", "i" )
Какой правильный способ сделать это?Спасибо
ОБНОВЛЕНИЕ: Использование UNION работает.Но я понял, что это также работает, если вы просто повторяете часть regex () следующим образом:
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i" ))
Оба решения кажутся немного грязными, так как вы должны использовать кортеж из 2 элементов с копиямиодна и та же строка для заполнения обоих %s
s.