Regex 提取包含重音或umlaut的资源

Regex 提取包含重音或umlaut的资源,regex,sparql,Regex,Sparql,我在dbpedia上寻找一个特定的人。我可以通过下面的查询找到此人及其姓名 select distinct * where { :Antonio_Damasio a dbpedia-owl:Person; rdfs:label ?name } 如果你看一下结果,你会得到很多带有不同口音的名字标签(例如:a) 我现在想推翻这个疑问;给我一个标签,给我URI。您可以通过以下方式轻松获得: select distinct * where {

我在dbpedia上寻找一个特定的人。我可以通过下面的查询找到此人及其姓名

select distinct * where {
    :Antonio_Damasio a dbpedia-owl:Person;
                     rdfs:label ?name
}
如果你看一下结果,你会得到很多带有不同口音的名字标签(例如:a)

我现在想推翻这个疑问;给我一个标签,给我URI。您可以通过以下方式轻松获得:

select distinct * where {
    ?person a dbpedia-owl:Person;
            rdfs:label ?name
filter(regex(?name, "^Antonio Damasio", "i"))
}


我的问题是,在上面的正则表达式中,我省略了带重音的字母(例如á),并且由于标签的多样性,我仍然设法提取资源。但是,并非所有资源都有英文标签。如果用户输入与拉丁字母匹配的标签,我希望能够提取资源。有没有一种方法可以编写一个查询或正则表达式,在给定一个标签的情况下检查所有种类的字母(例如,u,ú,ü,…),或者我只需要编写多个查询?

你的意思是:
^Ant[oó242;õ]nio Dam[aáãsio
?我有。但我真的不知道
[oóòõ]
的位置。不,遗憾的是,这不起作用。我尝试过
\p{L}
,但这种方法的问题是,您需要知道确切的位置,对吗?您不能为每个ascii字符定义一个字符类,甚至可以使用一个表,然后您需要进行多达52次替换,然后才能执行正则表达式……是的,这是我最后的选择。我想知道是否有一个神奇的公式,我不知道,可以帮助。非常感谢您的帮助。您的意思是这样的:
^Ant[oó242;õ]nio Dam[aááà]sio
?我知道。但我真的不知道
[oóòõ]
的位置。不,遗憾的是,这不起作用。我尝试过
\p{L}
,但这种方法的问题是,您需要知道确切的位置,对吗?您不能为每个ascii字符定义一个字符类,甚至可以使用一个表,然后您需要进行多达52次替换,然后才能执行正则表达式……是的,这是我最后的选择。我想知道是否有一个神奇的公式,我不知道,可以帮助。非常感谢你的帮助。