如何通过正则匹配方法提取指定URL前缀子串
正则匹配实现方案
你可以根据使用场景选择以下任意一种正则方案完成匹配:
方法1:正向预查法(直接匹配,无需提取分组)
如果运行环境支持正则预查,使用如下表达式:^.*(?=-zzz-)
- 逻辑说明:
^限定从字符串开头开始匹配.*贪婪匹配任意长度的字符(?=-zzz-)正向肯定预查,要求匹配内容的末尾后方必须紧跟-zzz-,预查部分不会计入最终匹配结果
对原字符串执行该正则,输出的匹配结果就是你需要的目标子串。
方法2:捕获分组法(兼容性更高)
如果环境不支持预查语法,使用带捕获分组的正则:^(.*)-zzz-zzzz$
执行匹配后提取第一个捕获组的内容,即可得到目标子串。
方法3:按段匹配法(适用于后缀格式不固定的场景)
如果前缀固定为「协议+域名+5个短横线分隔的路径段+末尾短横线」的结构,使用如下表达式:^https?://[^/]+/(?:[^-]+-){5}
- 逻辑说明:
^https?://匹配http/https协议头[^/]+匹配域名部分(?:[^-]+-)匹配「任意非短横线字符+短横线」的组合,?:表示该分组为非捕获分组,不占用分组序号{5}表示上述组合重复5次,刚好匹配到目标前缀的最后一个短横线位置
内容的提问来源于stack exchange,提问作者Bach Do
相关产品推荐
相关产品推荐

