に2枚のセパレータの間にサブストリングを取得:Iは、文字列以下た任意の位置
string source = "Test/Company/Business/Department/Logs.tvs/v1";
/
文字が文字列内の様々な要素間のセパレータです。私は文字列の最後の2つの要素を取得する必要があります。私はこの目的のために次のコードを持っています。これは正常に動作します。これにはより高速で簡単なコードがありますか?
CODE
static void Main()
{
string component = String.Empty;
string version = String.Empty;
string source = "Test/Company/Business/Department/Logs.tvs/v1";
if (!String.IsNullOrEmpty(source))
{
String[] partsOfSource = source.Split('/');
if (partsOfSource != null)
{
if (partsOfSource.Length > 2)
{
component = partsOfSource[partsOfSource.Length - 2];
}
if (partsOfSource.Length > 1)
{
version = partsOfSource[partsOfSource.Length - 1];
}
}
}
Console.WriteLine(component);
Console.WriteLine(version);
Console.Read();
}
をこのような場合に正規表現エンジンが「右から」一致するようにしないでください。 – Rawling
@ Rawling:同意。私はあなたが文字列を最初に逆にすることができると思うが、それはおそらく効率がさらに低い。実際には、式に '$'はあるが '^'はないときにRegExエンジンがその種の最適化を組み込むことはできないのだろうかと思う。 –
... OK、今日は、 'Regex.Match(source、" /(.*?)$ "、RegexOptions.RightToLeft)'や '$'この場合。 – Rawling