zoukankan      html  css  js  c++  java
  • 获取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)
  • 相关阅读:
    Leetcode 647 回文子串
    计算机专业课程——答案搜集
    Centos搭建go环境以及go入门
    android studio实现圆角的button
    关于区块链的认识和看法
    LeetCode 96. 不同的二叉搜索树
    LeetCode 120. Triangle (三角形最小路径和)详解
    LeetCode 64最小路径和
    微信发起摄像头接口请求 上传头像 图片
    Vue解决项目白屏以及(反向代理)
  • 原文地址:https://www.cnblogs.com/ljhdo/p/5068109.html
Copyright © 2011-2022 走看看