需求
匹配特定的uri,并获取uri的部分值。
解决方案
/**
* 获得正则匹配的第一个字符
*
* @param regex 正则表达式
* @param input 输入串
* @return 第一个匹配的值
*/
public static String groupOne(String regex, String input) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
matcher.find();
return matcher.group(1);
}
matcher.group(0) 为完整输入信息
matcher.group(1) 为匹配的第一组信息
示例
uri:/项目名/资源信息/
匹配该uri需要注意的就是uri 中的前面的'/'是最少1个,而最后一个'/'可以是0个
正则: (/+)项目名(/+)资源信息(/*)
uri:/项目名/资源信息/资源id
匹配该uri需要注意的就是uri 中的前面的'/'是最少1个,而最后一个'/'可以是0个 资源id不是个定值是个变量
正则: (/+)项目名(/+)资源信息(/+)(.*?)
.
代表任意字符。
+
代表取1至无限长度
*
代表取0至无限长度。
?
代表的是非贪婪模式。
()代表