2015-01-29 6 views
-3

Проект представляет собой калькулятор, который отображает математические операции в списке (то есть в списке будет отображаться что-то вроде 1 + 2 = 3). Калькулятор полностью работоспособен и работает правильно. Теперь вот проблема. Меня попросили расширить функциональность калькулятора, чтобы иметь возможность изменять записи в списке, когда они выбраны. Когда выбран элемент списка, мне нужно заполнить два текстовых поля двумя числами в математической операции. Поэтому, если я выбрал «1 + 2 = 3», тогда мне нужно было бы заполнить первое текстовое поле 1, а второе - 2, чтобы они могли быть изменены. Я предполагаю, что это нужно сделать с помощью регулярного выражения, но у меня нет опыта в этом, и я просто не могу обдумать эту проблему.Извлечь 2 числа из строки для заполнения текстовых полей vb.net

ответ

2

Знать это не регулярное выражение, но должны сделать трюк (с небольшим refractoring для вашей цели):

Dim k As String = "2+3=5" 
Dim p = k.Split("+=".ToCharArray()) 
Console.WriteLine(p(0)) 
Console.WriteLine(p(1)) 

'p() contains the split out parts of your expression. 
+0

жаль реализовать его не VB. net, обновит мой ответ –

+0

Крис, который потрясающе, спасибо. Использую ли я оператор select case для добавления трех других операторов математики? –

+0

подумайте, просто попробуйте добавить их в инструкцию Split следующим образом: Dim p = k.Split («+ - */=». ToCharArray()) –

0

Разделить 12 + 13 = 25:

(\d+)([-+*/])(\d+)=(\d+) 
^Matches 12 (In capturing group1) 

(\d+)([-+*/])(\d+)=(\d+) 
     ^Matches + (One of -, +, *,/operator) (In capturing group2) 

(\d+)([-+*/])(\d+)=(\d+) 
      ^Matches 13 (In capturing group3) 

(\d+)([-+*/])(\d+)=(\d+) 
        ^25 (In capturing group4) 
+0

Спасибо Andie за это отличное объяснение вашего регулярного выражения! Я попытаюсь его реализовать! Еще раз спасибо! –

Смежные вопросы