首页 > 代码库 > Regular Expression "not matching" and SPARQL Filter function usage
Regular Expression "not matching" and SPARQL Filter function usage
OK, I had a problem here when converting bio2rdf.org irefindex data into nanopublication using sparql here:
in a database, if the item you are looking for has multiple types, but you only need one of those types in your converted data, what you can do is to use a sparql filter function with regex
1. the proper sparql filter syntax is as follows:
select ?s where{ ?s ?p ?o . filter ( #your statements here for filter ) #it‘s brackets () not curly parenthesis {} }
2. the proper regex to match those items that you don‘t want
^.*?(?<!Resource)$ # the regex filter regex(?interaction_type, "^.*?(?<!Resource)$", "i") # how do you use the regex in the filter
^.*?(?<!Resource)$ means that you are finding stuff that not ending with "Resource" - references: http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html
2.例子,查找不以com结尾的字符串。
www.sina.com.cn
www.educ.org
www.hao.cc
www.baidu.com
www.123.com正则
^.*?(?<!com)$ 匹配前3行结果。如果查找以com结尾的字符串则使用正则 ^.*?(?<=com)$或者 ^.*?com$
and the syntax of filter can be referred here: http://www.w3.org/TR/rdf-sparql-query/ , you can search "11.4.13 regex" to get there.
online regex tester is also very helpful when debugging your regex: https://regex101.com/
Regular Expression "not matching" and SPARQL Filter function usage
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。