编写正则匹配逗号分隔URL列表并排除指定格式链接的技术咨询
解决方案
可用正则表达式
针对你描述的需求,适配逗号分隔URL列表场景的正则如下:
(?!https://staticvalue\.com/v3/__https?://[^/]+/__;!![A-Za-z0-9!_$-]{75}\$)[^,]+
如果你的使用场景需要单独校验单个URL、避免部分匹配,可以使用带首尾锚定的版本:
^(?!https://staticvalue\.com/v3/__https?://[^/]+/__;!![A-Za-z0-9!_$-]{75}\$).*$
规则说明
正则核心采用否定前瞻断言实现过滤逻辑,只要URL命中你指定的排除特征就不会被选中,排除规则的对应实现细节:
- 匹配固定开头
https://staticvalue.com/v3/__ - 匹配中间HTTP/HTTPS协议的任意站点路径:
https?://[^/]+/ - 匹配固定分隔字符串
__;!! - 匹配末尾76字符且以
$结尾的规则:[A-Za-z0-9!_$-]{75}\$,75个允许的字符加末尾的$总长度刚好为76
使用示例
假设有如下逗号分隔的URL列表:https://example.com,https://staticvalue.com/v3/__https://www.randomsite.com/__;!!Fjc1LPEtn8I!I_fRpN64qL1p3zCojqJHC0dSfh2jrinxfQ6h9Pscim9GpFzKqECpW2vaD6N7Xh1w$,https://test.org
使用上述正则匹配,最终会选中https://example.com和https://test.org,自动过滤符合排除规则的URL。
内容的提问来源于stack exchange,提问作者mm_ss.0291
相关产品推荐
相关产品推荐

