3

我必须对 SPARQL 中的 regex() 提出一个问题。我想替换一个变量,它有时包含一个带逗号的短语,另一个包含逗号之前的内容。例如,如果变量包含“我喜欢它,好的”,我想获得一个包含“我喜欢它”的新变量。我不知道要使用哪些常规表达式。

4

1 回答 1

6

这是一个用例strbefore,你根本不需要regex。作为一般提示,我建议阅读(或略读)SPARQL 1.1 查询语言推荐的第 17 节的目录。它列出了所有的 SPARQL 函数,虽然您不需要全部记住它们,但您至少会知道其中有什么。(这是对所有程序员和语言的好建议:浏览目录和索引。)这个查询1显示了如何使用strbefore

select ?x ?prefix where { 
  values ?x { "we invited the strippers, jfk and stalin" }
  bind( strbefore( ?x, "," ) as ?prefix )
}
---------------------------------------------------------------------------
| x                                          | prefix                     |
===========================================================================
| "we invited the strippers, jfk and stalin" | "we invited the strippers" |
---------------------------------------------------------------------------

1. 参见脱衣舞女、肯尼迪和斯大林说明为什么应该使用连续逗号

于 2013-11-06T20:09:41.000 回答