我需要从字符串中取第一个数字,例如
"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做到这一点?
谢谢!
答案 0 :(得分:8)
您可以尝试Enumerable.TakeWhile
:
ebayOrderId.TakeWhile(c => char.IsDigit(c));
答案 1 :(得分:2)
您可以使用LINQ TakeWhile
获取数字列表,然后使用new string
获取字符串编号
var number = new string(ebayOrderId.TakeWhile(char.IsDigit).ToArray());
答案 2 :(得分:0)
使用正则表达式
Regex re=new Regex(@"\d+\w");
尝试测试是否适用于http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
祝你好运!答案 3 :(得分:0)
我会改进@ 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]);
}
}