您好,登錄后才能下訂單哦!
在開發項目的過程中,經常遇到需要解析論壇,博客等的URL的問題,比如:'abc/def/jkl' 或 'abc/def/jkl/',獲取最后一個‘/’之后的所有字符‘jkl’,由于特殊字符'/'的個數不固定,從前向后正向解析URL,有點困難,其實有更簡單的方法,那就是逆向解析法。
逆向解析的思路非常簡單,因為最后一個特殊字符'/'的位置不確定,變通一下,使用reverse函數,將最后一個特殊字符'/'轉化為第一個特殊字符,獲取第一個特殊字符'/'之前的所有字符。
Script1,用于不以 ‘\’結尾的URL
declare @ExpressionToSearch varchar(max)set @ExpressionToSearch='/eeabc/def/abc/jkl'--set @ExpressionToSearch='eeabc/def/abc/jkl'--select reverse(@ExpressionToSearch)select right(@ExpressionToSearch, iif(charindex('/',reverse(@ExpressionToSearch),1)=0, len(@ExpressionToSearch), charindex('/',reverse(@ExpressionToSearch),1)-1) )
script2,如果以'/'結尾,取最后兩個‘/'字符之間的字符串,類似從字符串 'abc/def/jkl/' 中取‘jkl’
declare @ExpressionToSearch varchar(max)set @ExpressionToSearch='/eeabc/def/abc/jkl/'--set @ExpressionToSearch='eeabc/def/abc/jkl'--select reverse(@ExpressionToSearch)select left(StrToSearch,len(StrToSearch)-charindex('/',reverse(StrToSearch),1))from (select right(@ExpressionToSearch, iif(charindex('/',reverse(@ExpressionToSearch),2)=0, len(@ExpressionToSearch), charindex('/',reverse(@ExpressionToSearch),2)-1) ) )as T(StrToSearch)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。