我有一個無效的網址表。
我需要只使用有效的 url 提取查詢,但還要清理我可以的任何 url。
例如,修剪后的任何刺痛.com
要求: ? 網址必須為 URL 格式http://abc.xxx(http://www.abc.xxx或www.abc.xxx)
select url,
case
when regexp_like(r.url, '^(http(s)*://)*[a-z0-9.-] $')
then r.url
else null
end webAddress2
from url r
網址表:
id URL
1 http://www.a.com/NSLIJ/lij
2 G.F@xx.com
3 /www.smithtowncenter.com
4 www.b.com
5 http://b.com
6 http://www.b.com
我用過regexp_like,但不是很正確trim
任何幫助,將不勝感激。
查詢結果(應該是這樣的)
id URL newURL
1 http://www.a.com/NSLIJ/lij http://www.a.com (trimmed off `/NSLIJ/lij`
2 G.F@xx.com
3 /www.smithtowncenter.com www.smithtowncenter.com (trimmed off `/`)
4 www.b.com www.b.com
5 http://.b.com http://.b.com
6 http://www.b.com http://www.b.com
uj5u.com熱心網友回復:
您可以使用正則運算式^(http(s)?://)?[a-z0-9] (\.[a-z0-9] ) (/[a-zA-Z] )*?$來查找正確的匹配項。
例如:
select t.*,
case when regexp_like(url, '^(http(s)?://)?[a-z0-9] (\.[a-z0-9] ) (/[a-zA-Z] )*?$')
then 'valid' else 'invalid' end as chk
from t;
結果:
ID URL CHK
--- --------------------------- -------
1 http://www.a.com/NSLIJ/lij valid
2 G.F@xx.com invalid
3 /www.smithtowncenter.com invalid
4 www.b.com valid
5 http://b.com valid
6 http://www.b.com valid
請參閱db<>fiddle的運行示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/425302.html
