如何使用正则表达式从URL中分割最后一个斜杠之前的内容?

3
我想把一个url从最后一个/分成两个部分,例如:

http://github.com/members 分成 http://github.commembers

到目前为止,我尝试过https://regex101.com/r/SiVvRA/1,但只给了我第二部分。有什么建议吗?


嘿,谢谢你的负评! - undefined
很不幸,我在点赞时弄坏了它。 - undefined
2个回答

3

要在最后一个斜杠处分割,可以使用以下正则表达式,在不紧跟着另一个斜杠的情况下分割斜杠:

/(?!.*/)

查看此正则表达式匹配最后一个斜杠的演示

查看此正则表达式在Java中用于拆分的演示

String url = "http://github.com/members";
String[] parts = url.split("/(?!.*/)");
Arrays.stream(parts).forEach(System.out::println);

输出:

http://github.com
members

@Vishal 可能是因为你认为我的正则表达式中的斜杠不是正则表达式的一部分。如果 regex101 使用斜杠来界定正则表达式(就像 JavaScript 一样),那么你需要对斜杠进行转义 - 请参考我回答中的链接,展示了转义和正则表达式的正确工作。 - undefined
@Vishal 为了清晰起见,我添加了一些Java代码和一个链接,您可以在链接中看到Java代码按预期工作。 - undefined

1
根据您使用的语言,您可以简单地使用内置的split方法;但对于正则表达式解决方案,您可以将字符串匹配为两个组,并相应地提取它们:
^(.*)/([^/]*)$

https://regex101.com/r/SiVvRA/2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接