我有一个字符串,其值可以是
"条形码:X 2
46880亿"
"条形码:X 10 1234567890123"
等
我想检索数量值(即2,10)和条形码值(即4688000000000,1234567890123)
我尝试了以下代码 -
string[] QtyandBarcode = Regex.Split(NPDVariableMap.NPDUIBarcode.DisplayText, @"\D+");
但是当我执行时,我将QtyandBarcode作为具有3个值的字符串数组 -
""
" 2"
" 46880亿"
如何防止存储空值?
答案 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];