如何从linqC#中的字符串中提取第一个数字
本文关键字:提取 第一个 数字 字符串 linqC# | 更新日期: 2023-09-27 18:05:13
我需要从字符串中取第一个数字,例如
"12345 this is a number " => "12345"
"123 <br /> this is also numb 2" => "123"
等等。
为此,我使用C#代码:
string number = "";
foreach(char c in ebayOrderId)
{
if (char.IsDigit(c))
{
number += c;
}
else
{
break;
}
}
return number;
如何通过LINQ实现同样的功能?
谢谢!
您可以尝试Enumerable.TakeWhile
:
ebayOrderId.TakeWhile(c => char.IsDigit(c));
您可以使用LINQ TakeWhile
来获取数字列表,然后使用new string
来获取字符串编号
var number = new string(ebayOrderId.TakeWhile(char.IsDigit).ToArray());
使用正则表达式
Regex re=new Regex(@"'d+'w");
尝试测试是否在http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
祝你好运!
我会改进@David的回答。('d+)[^'d]*
:后面跟着任何不是数字的数字。
您的号码将在第一组:
static void Main(string[] args)
{
Regex re = new Regex(@"('d+)[^'d]*", RegexOptions.Compiled);
Match m = re.Match("123 <br /> this is also numb 2");
if (m.Success)
{
Debug.WriteLine(m.Groups[1]);
}
}