获取字符串c#regex中的所有数字

时间:2014-03-28 05:33:32

标签: c# .net regex string int

我有一个字符串,其值可以是

"条形码:X 2  46880亿"

"条形码:X 10  1234567890123"

我想检索数量值(即2,10)和条形码值(即4688000000000,1234567890123)

我尝试了以下代码 -

string[] QtyandBarcode = Regex.Split(NPDVariableMap.NPDUIBarcode.DisplayText, @"\D+");

但是当我执行时,我将QtyandBarcode作为具有3个值的字符串数组 -

""
" 2"
" 46880亿"

如何防止存储空值?

3 个答案:

答案 0 :(得分:2)

你可以这样做:

MatchCollection m = Regex.Matches(NPDVariableMap.NPDUIBarcode.DisplayText, @"\d+");

var x = (from Match a in m select a.Value).ToArray();

答案 1 :(得分:1)

string[] QtyandBarcode = Regex.Split(NPDVariableMap.NPDUIBarcode.DisplayText, @"\D+").Where(s => !string.IsNullOrEmpty(s)).ToArray();

现在你可以

string qty = QtyandBarcode[0];
string barcode= QtyandBarcode[1];

答案 2 :(得分:0)

这个简单的方法怎么样?

string[] parts =  NPDVariableMap.NPDUIBarcode.DisplayText.split(' ');  //split on space
string qty = parts[1];
string barcode = parts[2];