如何采取先数量从LINQ C#中的字符串
问题描述:
我需要先取号从字符串,例如如何采取先数量从LINQ C#中的字符串
"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做同样的事情?
谢谢!
答
使用正则表达式
Regex re=new Regex(@"\d+\w");
尝试测试,如果这个工程在http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
祝你好运!
答
您可以使用LINQ TakeWhile
得到数字的列表,然后new string
得到弦编号
var number = new string(ebayOrderId.TakeWhile(char.IsDigit).ToArray());
答
我会提高@大卫的回答。 (\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]);
}
}
http://*.com/a/15550651/1283124但使用'取(1)' – 2013-03-21 15:21:08
对不起,但我需要别的东西 – ihorko 2013-03-21 15:23:04
' “有些值123
这也是麻木2”'应该产生'123'还是错误? – 2013-03-21 15:23:41