我想从facebookpage的网址中提取特定字段。由于链接格式不是static.eg:如果我将以下示例作为输入,它应该给出我们想要的o / p
1)https://www.facebook.com/pages/Ice-cream/109301862430120?rf=102173023157556
o / p -109301862430120
这种类型的链接怎么样
任何人都可以帮助我
答案 0 :(得分:3)
因此,简而言之,您希望在/
之后获得名称?
和URI
之前(如果有的话)。
您可以使用File
和String 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