例如,我有这个字符串可以随时更改我只想要它的字母文本:
法拉利5 10 15000 -5 0.2
因此,我想要“法拉利”。
有时“法拉利”和数字之间不会有空格。
答案 0 :(得分:7)
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 ..."
。
答案 1 :(得分: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);
答案 2 :(得分:1)
你可以使用
String s = Regex.Match(str, @"[a-zA-Z]+").Value;
答案 3 :(得分:1)
一种选择是转换为char数组并拉出字母,然后转换回字符串:
string text = "Ferrari 5 10 15000 -5 0.2";
string alphas = string.Join( "", text.ToCharArray().Where( char.IsLetter ) );
答案 4 :(得分:1)
这是正则表达式派上用场的时候之一:
Regex wordMatcher = new Regex("[a-zA-Z]+");
foreach(Match m in wordMatcher.Matches("Ferrari 55 100000 24 hello"))
MessageBox.Show(m.Value);
基本上所有RegEx都会尝试匹配a-z忽略大小写之间的字母组。
答案 5 :(得分:1)
如果它始终以[数字, - ,。和空格]结尾,则可以使用.TrimEnd
:
record.TrimEnd("0123456789 .-".ToCharArray());
...或者如果你关心的文字中没有空格,你可以阅读直到第一个空格......
var whatINeed = new string(record.TakeWhile(c => c != ' ').ToArray());
...或者只是在空格分割时取第一项......
var whatINeed = record.Split().First();