3

たとえば、アルファベットのテキストのみが必要なときにいつでも変更できる次の文字列があります。

フェラーリ 5 10 15000 -5 0.2

だから「フェラーリ」が欲しい。

「Ferrari」と数字の間にスペースが入らない場合があります。

4

6 に答える 6

6
string str = "Ferrari 5 10 15000 -5 0.2";
string text = Regex.Match(str, @"[a-zA-Z\s]+").Value.Trim();

空白も一致させてから結果をトリミングすることで、 に一致"Some Car""Some Car 5 10 ..."ます。

于 2012-06-21T23:15:35.593 に答える
1

正規表現を使用すると、次のように最初の文字を一致させることができます

string text = "Ferrari 5 10 15000 -5 0.2";
string pat = @"([a-z]+)";

// Instantiate the regular expression object.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);

// Match the regular expression pattern against a text string.
Match m = r.Match(text);
于 2012-06-21T23:16:37.997 に答える
1

あなたが使用できる

String s = Regex.Match(str, @"[a-zA-Z]+").Value;
于 2012-06-21T23:16:51.190 に答える
1

常に [数字、-、.、およびスペース] で終わる場合は、次を使用できます.TrimEnd

record.TrimEnd("0123456789 .-".ToCharArray());

... または、気になるテキストにスペースがなければ、最初のスペースまで読むことができます ...

var whatINeed = new string(record.TakeWhile(c => c != ' ').ToArray());

...または、スペースで分割されたときに最初のアイテムを取るだけです...

var whatINeed = record.Split().First();
于 2012-06-21T23:39:59.683 に答える
1

1 つのオプションは、char 配列に変換し、文字を取り出してから文字列に戻すことです。

string text = "Ferrari 5 10 15000 -5 0.2";
string alphas = string.Join( "", text.ToCharArray().Where( char.IsLetter ) );
于 2012-06-21T23:17:46.223 に答える
1

これは、正規表現が役立つときの 1 つです。

Regex wordMatcher = new Regex("[a-zA-Z]+");
foreach(Match m in wordMatcher.Matches("Ferrari 55 100000 24 hello"))
    MessageBox.Show(m.Value);

基本的に、RegEx が行うことは、大文字と小文字を区別せずに文字のグループを一致させようとすることだけです。

于 2012-06-21T23:20:45.763 に答える