从url中提取特定字段

时间:2014-03-08 08:01:56

标签: java regex

我想从facebookpage的网址中提取特定字段。由于链接格式不是static.eg:如果我将以下示例作为输入,它应该给出我们想要的o / p

1)https://www.facebook.com/pages/Ice-cream/109301862430120?rf=102173023157556

o / p -109301862430120

这种类型的链接怎么样

任何人都可以帮助我

1 个答案:

答案 0 :(得分:3)

因此,简而言之,您希望在/之后获得名称?URI之前(如果有的话)。

您可以使用FileString data = "https://www.facebook.com/pages/Anti-Christian-sentiment/149675731889496?ref=br_tf"; System.out.println(new File(new URI(data).getRawPath()).getName()); 类来完成此操作,例如

149675731889496

输出:([^/?]+)(\\?|$)


如果您需要使用正则表达式,那么您可以使用

?

并且只阅读第1组的内容(第一对括号中的一个)。

如果您不想使用组,并且仅使正则表达式匹配数字部分(不包括匹配中的(?=...)),那么您可以使用环视机制[^/?]+(?=\\?|$) 。你必须使用的正则表达式看起来像

String data = "https://www.facebook.com/pages/Anti-Christian-sentiment/149675731889496?ref=br_tf";
Pattern p = Pattern.compile("([^/?]+)(\\?|$)");
Matcher m = p.matcher(data);
if (m.find()){
    System.out.println(m.group(1));
}

代码示例:

{{1}}

输出:

149675731889496