正则表达式问题:无法排除含点及以/live开头的URL
正则表达式修正方案
问题分析
你当前的正则无法排除含点的链接,核心原因是(?![\.])仅断言链接开头(/之后的第一个字符)不是点,但无法检测链接中间或末尾的点,因此无法过滤像/fzvenbr/ohwtbl.css这类包含点的链接。
修正后的正则表达式
/^\/(?!live)(?!.*\.).*$/gm
正则各部分说明
^\/:匹配以/开头的链接行(?!live):负向预查,确保/后不是live开头(排除/live、/live/xxx这类链接)(?!.*\.):负向预查,断言整个链接字符串中不存在任何点(过滤所有含.css、.png等后缀的链接).*$:匹配链接剩余的所有内容直到行尾gm:全局多行模式,适配每行一个链接的文本格式
测试验证
针对你的测试链接:
- 匹配通过(保留):
/yktqxw、/osfqimq/live、/srjtsuv/qmvqgkz - 被排除:
/fzvenbr/ohwtbl.css(含点)、/live(以/live开头)
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

