url路径的模式匹配

时间:2018-04-12 20:46:38

标签: java regex split pattern-matching

我有以下需要解析的网址:

a) https://url:port/abc
b) https://url:port/abc/{uid}
c) https://url:port/abc/{uid}/def

要弄清楚网址的类型(a,b或c),我正在做:

Pattern a = Pattern.compile(".*\\/abc$");
Pattern b = ??
Pattern c = Pattern.compile(".*\\/abc\\/(.*?)\\/def$");

模式 a c 工作正常。虽然我不确定我可以使用哪种模式,因此可以匹配 b 类型的确切网址,而不必依赖匹配顺序。

1 个答案:

答案 0 :(得分:1)

你可以使用这个:

 .*\\/abc\\/([^\\/]*)$

Demo

斜杠之后的部分:([^\\/]*)$它允许任何数量的非斜线字符,因此它允许uid但不允许路径的另一部分。