SQL和Regex |检查网址路径

问题描述 投票:-1回答:2

我试图在SQL中只显示具有路径的URL,例如:

stackoverflow.com/ - 没有路径

stackoverflow.com/abc.html - 没有路径

stackoverflow.com/abc- path

stackoverflow.com/abc/bla/- path

现在在正则表达式的答案是\/\w+$

我知道正则表达式与SQL不兼容,所以我不知道如何检查URL。

这是我试过的:

select * from sites where url like '\/\w+$'
sql sql-server regex tsql sql-server-2014
2个回答
1
投票

这将检查URL是否包含两个斜杠:

SELECT *
FROM testdata
WHERE url LIKE '%/%/%'

从技术上讲,URL stackoverflow.com/abc.htmlstackoverflow.com/abc是相同的,你有一个主机名和一个文件名。以上示例仅匹配stackoverflow.com/abc/bla/


0
投票

你可以使用CHARINDEX

WITH cte(p) AS (
    SELECT 'stackoverflow.com/' 
    UNION SELECT 'stackoverflow.com/abc.html' 
    UNION SELECT 'stackoverflow.com/abc'
    UNION SELECT 'stackoverflow.com/abc/bla'
)
SELECT *
FROM cte
WHERE CHARINDEX('/', REVERSE(p)) < CHARINDEX('.', REVERSE(p));

Rextester Demo

© www.soinside.com 2019 - 2024. All rights reserved.