【发布时间】:2021-01-16 16:33:17
【问题描述】:
我正在尝试使用 MySQL 函数 REGEXP_SUBSTR 从 URL 中提取主机名。
我得到的最接近的正则表达式如下:
(?:\w+\.)?(\w+\.\w+)
这相对来说可行,但问题是捕获的主机名是分组
假设我们试图匹配https://www.w3schools.com/home,上面的正则表达式会返回:
-
完全匹配
www.w3schools.com -
第 1 组。
w3schools.com
REGEXP_SUBSTR 似乎只减去 “完全匹配” 中的内容,因此上述解决方案结果不正确。
如何修改上述模式以将主机名包含在完整匹配中,而不是组中?
【问题讨论】:
-
提示:主机名中可以包含
-。 -
这个模式
(?:\w+\.)?(\w+\.\w+)是一个非常广泛的 url 匹配。它匹配中间有一个点的单词字符。 -
您应该准确说明您拥有的 MySQL 版本。是第 8 版吗?
-
@AndyLester 不,这个问题是面向 REGEXP 的。