我在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 works。但是我发现,如果你重复regex()部分,它也可以工作,就像这样:
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i" ))
这两个解决方案看起来都有点混乱,因为必须使用一个带有相同字符串副本的2元素元组来填充这两个%s
s
这个怎么样?
相关问题 更多 >
编程相关推荐