我试图在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+$'
答案 0 :(得分:1)
检查URL是否包含两个斜杠:
SELECT *
FROM testdata
WHERE url LIKE '%/%/%'
从技术上讲,网址stackoverflow.com/abc.html
和stackoverflow.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 强>