从RDF资源中删除命名空间

时间:2012-11-16 15:50:26

标签: java regex uri

我正在开发一个Java项目,我在其中生成URI(统一资源标识符)作为输出。 URI的一个示例是:www.myexample.com/rgd/543/mary。

我需要提取这些URI的最后部分,这些URI在之前的URI中是mary。

我需要一个可扩展的解决方案,因为我可能有不同形式的URI但我总是需要在“/".

之后得到最后一部分

例如我可以: http://software.org/trg/poo/945/steve 要么 http://www.amazon.com/rggf/0956/dfgh/rgf/kk/adam

我需要分别从之前的URI中提取steve和adam。

我知道正则表达式可能有效但在正则表达式方面没有多少经验。 提前谢谢了。

1 个答案:

答案 0 :(得分:0)

您可以在表示URI的字符串上使用substringlastIndexOf方法,而不是正则表达式,例如

String[] data = { "http://software.org/trg/poo/945/steve",
        " http://www.amazon.com/rggf/0956/dfgh/rgf/kk/adam" };
for (String s:data)
    System.out.println(s.substring(s.lastIndexOf('/')+1));

//"http://software.org/trg/poo/945/steve
//                                ^
//                                lastIndexOf(`/`);
//                                
// but we don't want to return "/steve" but "steve" 
// so lets subtract string from index of last `/`
// increased by one 

输出:

steve
adam