2017-10-26 21 views
1

特定の部分文字列から始まる文字列の2番目の部分をエレガントな方法で削除する方法はありますか? Ex。私たちが望む結果として部分文字列から始まる文字列をトリミングする方法

var someString = "ThisIsSomeString_v1_26102017"; 

: 私たちは、文字列を持っていることを行うための任意の巧妙な方法があり

var someString = "ThisIsSomeString_v1_26102017"; 
var tokens = someString.SplitByLast("_v"); 
var result = tokens[0]; 

ThisIsSomeString

私はそれをやりましたか?トリムなんか何か? 結果として、私は文字列の最初の部分を持っていることを意味します。この場合、セパレータは "_v"部分文字列です。この "_v"を含む "_v"の後にすべてを削除したいと思います。

+0

はこれについて行くための正しい方法です。 – nbokmans

+2

'IndexOf'は部分文字列の位置を取得し、' SubString'は必要な部分を取得します。 'SplitByLast'とは何ですか?その名前の標準的なメソッドは 'string'にはありません。 – juharr

+0

@GiladGreenテキストとコードは同期しています:コードは先頭をとり、テキストは「最後を削除する」と尋ねます。 –

答えて

1

使用string.Substring

var result = someString.Substring(0, Math.Max(someString.IndexOf("_v"), 0)); 
0

ないSubstring実装よりも良く、Splitは次のようになります。

var result = someString.Split(new[]{"_v"}, StringSplitOptions.None).First(); 
0

このようください -

var result = str.Substring(0, str.LastIndexOf("_v")); 

それは削除されます_vの後のすべてのテキスト(_vを含む)。間違って何

0

:文字列を分割

var result = input?.Split(new[] { "_v" }, StringSplitOptions.None)[0]; 
+0

'var result = input?.Split(new [] {" _v "}、1)[0];' –

関連する問題