正则表达式匹配特定域名URL模式的技术需求
正则表达式匹配特定域名下仅一级路径包含关键词的URL
没问题,我帮你写一个完全符合需求的正则表达式,同时拆解每个部分的作用,方便你理解和调整:
最终正则表达式
^https?://www\.domain\.com/[^/]*myKeyword[^/]*/$
如果需要不区分大小写匹配关键词(比如匹配MyKeyword、MYKEYWORD等变体),可以加上i修饰符:
^https?://www\.domain\.com/[^/]*myKeyword[^/]*/$/i
正则规则拆解
让我们逐个解析每个部分的作用:
^:锚定字符串的起始位置,确保我们从URL的最开头开始匹配,避免误匹配URL中间的片段https?://:匹配HTTP或HTTPS协议,?表示s是可选的,同时支持两种协议www\.domain\.com/:匹配目标域名,注意.需要用\.转义(正则里.默认代表任意字符),结尾的/确保我们定位到域名后的第一个路径分隔符[^/]*:匹配任意数量(包括0个)的非斜杠字符,这一步是核心——确保我们只在第一个路径段里查找关键词,不会匹配到更深层级的路径myKeyword:替换成你实际需要匹配的关键词,比如例子里的KEYWORD部分[^/]*:继续匹配关键词之后的任意非斜杠字符,保证整个内容都属于同一个一级路径段/:匹配路径段结尾的斜杠,满足你要求的末尾必须有斜杠的条件$:锚定字符串的结束位置,确保URL后面没有多余的内容(比如额外的路径、参数或片段)
验证示例
有效匹配(符合规则的URL)
https://www.example.com/the-bla-KEYWORD-bla-bla/http://www.domain.com/myKeyword/https://www.domain.com/abcmyKeyword123/
无效匹配(不符合规则的URL)
https://www.example.com/join/the-bla-KEYWORD-bla-bla/:域名后多了/join/路径段,属于二级路径,被排除https://www.example.com/gift/the-.../:路径中不包含目标关键词https://www.domain.com/myKeyword:缺少末尾的斜杠https://www.domain.com//myKeyword/:域名后有两个连续斜杠,不符合“仅存在一个正斜杠”的要求
内容的提问来源于stack exchange,提问作者Kuba Chour
相关产品推荐
相关产品推荐

