正则匹配及取值

需求

匹配特定的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至无限长度。
? 代表的是非贪婪模式。
()代表

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容