SQL和Regex |检查网址路径

时间:2018-02-11 10:15:54

标签: sql sql-server regex tsql sql-server-2014

我试图在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+$'

2 个答案:

答案 0 :(得分:1)

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

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

从技术上讲,网址stackoverflow.com/abc.htmlstackoverflow.com/abc是相同的,您拥有主机名和文件名。以上示例仅匹配stackoverflow.com/abc/bla/

答案 1 :(得分: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