7
我在我的Python程序使用此行的SPARQL查詢:如何在SPARQL regex()中使用邏輯OR?
FILTER regex(?name, "%s", "i")
(其中%s
是由用戶輸入的搜索文本)
我想這個匹配如果任?name
或?featurename
包含%s
,但我似乎無法找到使用正則表達式()的任何文檔或教程。我想,看來是合理的有兩件事情:
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的作品。但我想通了,它也可以,如果你只是重複的正則表達式()的一部分,像這樣:
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i"))
兩種解決方案都顯得有點凌亂,你必須使用一個2元元組相同的字符串的副本填寫%s
s。