2016-06-20 24 views
1

私は次のような文字列を持っているを含む文字列から文字を含む唯一の部分文字列を抽出する:は数字の文字列や記号

string str = hello_16_0_2016; 

私が欲しいものは、文字列からハローを抽出することです。私のプログラムのように、文字列部分はどこでも自動生成されるのでどこにでも置くことができるので、文字列の位置を修正することはできません。

たとえば、上記の最初の5つの文字列を新しい変数に格納できます。

しかし、文字の出現はランダムで、上の文字列から文字のみを抽出したいので、誰かがこれを行う正しい手順に私を導くことができますか?

+0

ERM、 'str.Split( "_")まず(S => s.All(チャー。 IsLetter))); ' – Jodrell

答えて

1

a-zだけが必要であると仮定して、単純な正規表現を使用してアルファベット文字のみを引き出すことができますか?

using System.Text.RegularExpressions; 

var str = "hello_16_0_2016"; 
var onlyLetters = Regex.Replace(str, @"[^a-zA-Z]", ""); 

// onlyLetters = "hello" 
1

私はこの(LINQのを使用しています)のようなものを使用したい:パフォーマンスが懸念される場合には(あなたがタイトループでこれをしなければならないので

var str = "hello_16_0_2016"; 
var result = string.Concat(str.Where(char.IsLetter)); 

Check it out

か、を、または)文字列の数十万人を変換する必要があり、おそらく行うには速いだろう:

var result = new string(str.Where(char.IsLetter).ToArray()); 

Check it too

0

しかし、文字の発生などがランダムであり、私は上記の文字列からのみ 文字を抽出したいので、誰かがこれを行うには、正しい 手順に私を導くことができますか?

以下はどこの文字列内の数字ことなく、最初のテキストを抽出する:

Console.WriteLine(Regex.Match("hello_16_0_2016", @"[A-Za-z]+").Value); // "hello" 
関連する問題