我在我的Python程序中使用以下代码行进行SPARQL查询:
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
。