• 获取URL最后一个 ‘/’ 之后的字符


    在开发项目的过程中,经常遇到需要解析论坛,博客等的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)
  • 相关阅读:
    预备作业03
    预备作业02
    预备作业01
    20162319莫礼钟 2016-2017-2 《程序设计与数据结构》第1周学习总结
    预备作业03
    20162319 莫礼钟 预备作业02
    20162319莫礼钟 预备作业01
    20162307 实验一 实验报告
    20162307 第4周学习总结
    20162307 第3周学习总结
  • 原文地址:https://www.cnblogs.com/ljhdo/p/5068109.html
Copyright © 2020-2023  润新知