我试图提取两个" /"
之间的最后一个字符串例如: 对于这个字符串: https://stackoverflow.com/questions/ask
我想回复"问题"
然而,对于这个字符串 Extract the last substring from a cell
我想回来" 6133287"
它必须始终是最后两个" /"
之间的字符串我正在使用我在这个论坛中找到的一些MID函数,但是他们正在为字符串的开头工作。不一定是长度不同的字符串。
谢谢, Ĵ
答案 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);