C# 仅从包含数字、字符串和符号的字符串中提取包含字母的子字符串
我有一个字符串,如下所示:C# 仅从包含数字、字符串和符号的字符串中提取包含字母的子字符串,c#,C#,我有一个字符串,如下所示: string str = hello_16_0_2016; 我想要的是从字符串中提取hello。在我的程序中,字符串部分可以在任何地方出现,因为它是自动生成的,所以我无法确定字符串的位置 例如:我可以从上面获取前五个字符串,并将其存储在一个新变量中 但是,由于字母的出现是随机的,我只想从上面的字符串中提取字母,所以有人能告诉我正确的操作步骤吗?假设您只需要a-z,您能用一个简单的正则表达式只提取字母字符吗 using System.Text.RegularExpr
string str = hello_16_0_2016;
我想要的是从字符串中提取hello。在我的程序中,字符串部分可以在任何地方出现,因为它是自动生成的,所以我无法确定字符串的位置
例如:我可以从上面获取前五个字符串,并将其存储在一个新变量中
但是,由于字母的出现是随机的,我只想从上面的字符串中提取字母,所以有人能告诉我正确的操作步骤吗?假设您只需要a-z,您能用一个简单的正则表达式只提取字母字符吗
using System.Text.RegularExpressions;
var str = "hello_16_0_2016";
var onlyLetters = Regex.Replace(str, @"[^a-zA-Z]", "");
// onlyLetters = "hello"
我会使用这样的东西(使用Linq): 或者,如果性能是一个问题(因为您必须在紧密循环中执行此操作,或者必须转换数十万个字符串),则执行以下操作可能会更快:
var result = new string(str.Where(char.IsLetter).ToArray());
但由于字母的出现是随机的,我只想提取
上面字符串中的字母,那么有人能引导我找到正确的吗
这样做的程序是什么
以下内容将提取第一个文本,字符串中没有数字:
Console.WriteLine( Regex.Match("hello_16_0_2016", @"[A-Za-z]+").Value ); // "hello"
呃,str.Split(“”).First(s=>s.All(char.isleter))代码>
Console.WriteLine( Regex.Match("hello_16_0_2016", @"[A-Za-z]+").Value ); // "hello"