regex - 在 SPARQL 中使用正则表达式绑定变量?
问题描述
我正在制作一个 OWL 知识图,以获取有关 Covid 大流行中患者的信息。我一直在使用 SPARQL 将电子表格中的字符串转换为适当的对象和属性值。
我有像Infected by P231 and P456 and P39393
我想要的是可以将变量绑定到患者 ID 的字符串。我认为这不应该太难,因为字符串只遵循一些模式。例如,字符串将有一个、两个或三个患者 ID,因此我可以编写一个匹配每个单独案例的查询。
我以为我可以使用正则表达式来做到这一点,但现在我更仔细地查看了正则表达式,我认为它所能做的就是告诉我存在这样的患者 ID,但与诸如这样的函数不同,SUBSTR
它实际上会返回我想要的部分字符串,所以我可以将它绑定到一个变量,正则表达式只返回 true 或 false 某些字符串与模式匹配或不匹配。那是对的吗?
如果这是正确的,是否有其他方法可以在 SPARQL 中进行模式匹配,我实际上可以将变量绑定到匹配部分模式的子字符串?还是我需要求助于像 Python 这样的完整编程语言来做到这一点?
解决方案
REPLACE
是应用正则表达式的函数,带有()
匹配组,并根据匹配计算返回字符串,$1
以获取实际匹配的组。fn:replace
它与许多 SPARQL 函数一样基于“XPath 和 XQuery 函数和运算符”。
BIND (REPLACE("123", "(.)..", "$1") AS ?str)
将设置?str
为“1”。
推荐阅读
- oracle - 将 300 万条记录从 csv 导入到 oracle DB 表
- apache-spark-sql - Spark sql join fetch记录不匹配相同的team_name
- r - 在R中没有正则表达式的数据框中用字符串替换多个数字
- django - django中修改的urlpatterns
- php - 在 redirectToRoute 中发送参数并在控制器中获取它
- reactjs - 如何向数组中的现有对象添加新值
- matplotlib - 多图成单图
- agda - 在 agda 的可判定性框架内工作
- c# - 根据asp.net中的选择将菜单设置为活动类
- angular - 使用参数转换管道