2012-06-08 9 views
0

У меня есть раскрывающийся список, в котором есть значение двух столбцов ... Один столбец - это число от 5 символов до 8 символов, а затем пробел, а затем '|' символ и другое пространство, за которым следует описание для набора чисел.Подстрока с несколькими аргументами

Пример:

12345678 | Description of Product 

Для того, чтобы вытащить элементы для DropDownList в моей базе данных мне нужно использовать подстроку, чтобы потянуть последовательность чисел только.

Можно ли написать подстроку для вытягивания нескольких длин символов? (Иногда это может быть 6 чисел, иногда 5 чисел, иногда 8, это будет зависеть от того, что пользователь выбрал из выпадающего списка.)

ответ

1

Используйте регулярное выражение для этого.

Предполагая, что число находится в начале строки, вы можете использовать следующее:

^[0-9]+ 

Использование:

var theNumbers = RegEx.Match(myDropdownValue, "^[0-9]+").Value; 

Вы также можете использовать string.Split получить части, разделенные |, если вы знаете, что первая часть - это то, что вам нужно, и всегда будет числовой:

var theNumbers = myDropdownValue.Split("| ".ToCharArray(), 
             StringSplitOptions.RemoveEmptyEntries)[0]; 

Любой из этих подходов приведет к строке . Вы можете использовать int.Parse на результат, чтобы получить от него целое число.

+0

Как бы я связать, что в моей подстроки? он выглядит так: value.substring() будет ли это value.substring^[0-9] + ?? – developthestars

+0

@developthestars - У вас нет. Я предлагаю вам использовать регулярное выражение вместо подстроки. – Oded

+0

O Я вижу новый для .NET, и я еще не знаком с регулярными выражениями. Спасибо @ – developthestars

0

Вместо использования подстроки вы должны использовать функцию разделения.

var words = phrase.Split(new string[] {" | "}, 
        StringSplitOptions.RemoveEmptyEntries); 

var number = word[0]; 
+0

Что такое функция разделения? – developthestars

+0

см. Мой обновленный ответ –

+0

Проверьте это для деталей: http://msdn.microsoft.com/en-us/library/tabh47cf.aspx –

0

Попробуйте использовать регулярное выражение, чтобы вывести первое совпадение последовательности чисел любой длины. Регулярное выражение будет выглядеть как «^ \ d +» - начинается с любого числа десятичных цифр.

1

Это, как я хотел бы сделать это

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);