我有一些"paths"
格式类似于:
/Media/Default/images/Tulips.jpg
我有能力获得“根路径”,它将返回类似于以下内容的东西:
http://example.com/Media/Default/
/another-prefix/Media/Default/
我需要做的是将“path”字符串的开头与“root path”字符串的结尾匹配,以返回images/Tulips.jpg
我真正需要的是一个通用的正则表达式,可以比较2 strings
做一个覆盖的sort
和最大可能匹配的修剪。这样,如果输入更改为:
路径:qwerty-some-random-string
Root Path:junk-qwerty
结果:-some-random-string
答案 0 :(得分:2)
按长度的降序尝试root
的所有后缀,并在确定其中一个后缀为path
的前缀时停止:
var path = "qwerty-qwerty-some-random-string";
var root = "aardvark-junk-qwerty-qwerty";
var prefix = root.Select((ch, i) => root.Substring(i))
.Where(pref => path.StartsWith(pref))
.DefaultIfEmpty("")
.First();
var result = path.Substring(prefix.Length);
<强> See it in action 强>
注意:最初我在这里发布了一个正则表达式解决方案,但事实证明它完全不可行。