首页 > 解决方案 > 用于提取 url 路径的正则表达式

问题描述

我需要帮助为 PostgresSQL 创建正则表达式以提取特定的 url 路径并将它们放入单独的列中。

例如,使用以下网址我需要提取

https://example.com/drinks/ 
https://example.com/drinks/beverages/
https://example.com/drinks/beverages/pepsi/pepsi-can-16-oz/
Column 1                                                   | Column 2
---------------------------------------------------------------------------------------
https://example.com/drinks                                 | /drinks/
https://example.com/drinks/beverages                       | /drinks/beverage/
https://example.com/drinks/beverages/pepsi/pepsi-can-16-oz | /drinks/beverages/pepsi/

/drinks/beverage/*最后,一个正则表达式可以在......之后得到任何东西

正则表达式不是我的强项,所以我正在寻找一些关于如何实现这一点的指导。

标签: regexpostgresqlurl-parsing

解决方案


尝试这个 ...

(?=((?i)http(s)?:\/\/(?:[\w0-9](?:[\w0-9-]{0,61}[\w0-9])?\.)+[\w0-9][\w0-9-]{0,61}[\w0-9])).*

从本质上讲,它将匹配域(即https://example.com),然后提前为您获取路径。


推荐阅读