从路径上的最后2“/”提取字符串

时间:2014-10-15 22:24:39

标签: extract between

我试图提取两个" /"

之间的最后一个字符串

例如: 对于这个字符串: https://stackoverflow.com/questions/ask

我想回复"问题"

然而,对于这个字符串 Extract the last substring from a cell

我想回来" 6133287"

它必须始终是最后两个" /"

之间的字符串

我正在使用我在这个论坛中找到的一些MID函数,但是他们正在为字符串的开头工作。不一定是长度不同的字符串。

谢谢, Ĵ

2 个答案:

答案 0 :(得分:0)

C#way

public String stringBetweenLastTwoSeparators(String s, String separator){
   String[] result = s.Split(separator.ToCharArray());
   return result[result.Length-2];
} //c#

以下是一般逻辑

    public static String stringBetweenLastTwoSeparators(String s, String separator){
        List<String> result = new List<String>();
        int lastIndexRead = 0;
        bool reading = true;
        while (reading)
        {
            int indexOfSeperator = s.IndexOf(separator,lastIndexRead);
            if (indexOfSeperator != -1)
            {
                result.Add(s.Substring(lastIndexRead, indexOfSeperator-lastIndexRead));
                lastIndexRead = indexOfSeperator + 1;
            }
            else
            {
                result.Add(s.Substring(lastIndexRead, s.Length - lastIndexRead));
                reading = false;
            }
        }
        return result[result.Count - 2];

    }

答案 1 :(得分:0)

$re = "/\\/([^\\/]+)(?=\\/[^\\/]+\\/?$)/"; 
$str = "https://stackoverflow.com/questions/ask"; 

preg_match($re, $str, $matches);