我有以下网址
/es-es/Replica-2300/saliffanag/winsrow
/es-de/Bat-00/saliffanag/winsrow
/es-it/Re-2300/saliffanag/winsrow
/es-../
etc..
我需要一个仅捕获Java中的/ es-es /或/ es-de /或/ es-it /(第一个/...-.../)的模式。
我已经尝试过
"[^/]*/([^/]*)/"
但是不起作用
我该如何实现?
答案 0 :(得分:3)
只需使用拆分:
"/es-es/Replica-2300/saliffanag/winsrow".split("/", 3)[1]
在返回“ es-es”之后,只需在/后面加上
对于可变网址:
String[] split = "padding/test/for/loop/es-es/Replica-2300/saliffanag/winsrow".split("/");
String result = "";
for(String s : split){
if(s.length() != 5){ continue;}
if(s.charAt(2) == '-'){
result = s; //if you need the '/' just use result = "/" + s "/";
break;
}
}
答案 1 :(得分:1)
您在这里:
\/(es-[a-z]+)\/
尝试在Regex101处查找表达式。
\/
从字面上匹配/
-必须转义()
是捕获组es-
从字面上匹配自己[a-z]+
将一个或多个字母匹配在一起如果输入可能是ex。 it-it
,您想使用\/(\[a-z\]+-\[a-z\]+)\/
。
另一方面,如果您已定义了可能的后缀列表,请使用\/(es-(?:es|de|it))\/
,其中(?:)
是一个非捕获组。
答案 2 :(得分:0)