我有一个下拉列表,其中有两列的值...一列是一个数字,范围从5个字符长到8个字符长,然后是空格,然后是'|'字符和另一个空格,然后是一组数字的说明。具有多个参数的子串
一个例子:
12345678 | Description of Product
为了拉为下拉列表中的项目到我的数据库,我需要一个利用一子拉出只有数字的序列。
是否可以写一个子字符串来拉多个字符长度? (有时可能是6个数字,有时是5个数字,有时是8个,这取决于用户从下拉列表中选择的内容。)
我有一个下拉列表,其中有两列的值...一列是一个数字,范围从5个字符长到8个字符长,然后是空格,然后是'|'字符和另一个空格,然后是一组数字的说明。具有多个参数的子串
一个例子:
12345678 | Description of Product
为了拉为下拉列表中的项目到我的数据库,我需要一个利用一子拉出只有数字的序列。
是否可以写一个子字符串来拉多个字符长度? (有时可能是6个数字,有时是5个数字,有时是8个,这取决于用户从下拉列表中选择的内容。)
对此使用正则表达式。
假设数目为字符串的开始,你可以使用以下命令:
^[0-9]+
用法:
var theNumbers = RegEx.Match(myDropdownValue, "^[0-9]+").Value;
你也可以使用string.Split
度日|
如果分开的部分你知道第一部分是你所需要的并且总是数字的:
var theNumbers = myDropdownValue.Split("| ".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries)[0];
以上任何一种方法都会导致字符串。您可以在结果上使用int.Parse
以从中获取整数。
而不是使用子字符串,你应该使用拆分功能。
var words = phrase.Split(new string[] {" | "},
StringSplitOptions.RemoveEmptyEntries);
var number = word[0];
什么是分割功能? – developthestars
查看我的更新回答 –
查看详情:http://msdn.microsoft.com/en-us/library/tabh47cf.aspx –
尝试使用正则表达式来拉出任意长度的数字序列的第一个匹配。正则表达式看起来像“^ \ d +” - 以任意数量的小数位开始。
这是我会怎么做
string str = "12345678 | Description of Product";
int delimiter;
delimiter = str.IndexOf("|") - 1;
string ID =str.substring(0, delimiter);
string desc = str.substring(delimiter + 1, str.length - 1);
我怎么会扎到这一点我的子?它看起来像这样:value.substring()它会是value.substring^[0-9] + ?? – developthestars
@developthestars - 你没有。我建议你使用正则表达式而不是子字符串。 – Oded
O我看到了.NET的新特性,但我还不完全熟悉正则表达式。谢谢@ – developthestars