如何使用正则表达式将URL指定路径段始终移动到路径末尾
URL指定路径段移至末尾的通用正则方案
原有正则仅能生效于单层路径场景,原因是第三个捕获组只匹配了单段路径字符,既没有覆盖to_the_end后的多层路径,也没有兼容URL末尾斜杠的不同情况,使用如下规则可以实现任意层数路径的通用匹配。
匹配正则
(google\.com)/(to_the_end)/(.*?)(/?)$
分组逻辑:
(google\.com):捕获域名部分(to_the_end):捕获需要移动到末尾的固定路径段(.*?):非贪婪匹配固定路径段之后的所有路径内容,不受文件夹层数限制(/?)$:捕获URL末尾可能存在的斜杠,同时锚定字符串结尾,避免漏匹配
替换式
$1/$3/$2$4
匹配结果
使用上述规则处理测试用例,会保留原URL的末尾斜杠特征:
- 输入
google.com/to_the_end/faa/→ 输出google.com/faa/to_the_end/ - 输入
google.com/to_the_end/faa/fee/→ 输出google.com/faa/fee/to_the_end/ - 输入
google.com/to_the_end/faa/fee/fii→ 输出google.com/faa/fee/fii/to_the_end
如果需要匹配特殊的末尾斜杠规则,只需要调整末尾斜杠的捕获和替换逻辑即可,核心的多层路径捕获逻辑通用。
内容的提问来源于stack exchange,提问作者Álvaro
相关产品推荐
相关产品推荐

