我正在嘗試制作一個計算器。我正在使用 Regex.Split() 來獲取表達式中的數字輸入。它適用于非十進制數字,但現在我正在尋找一種方法來獲取十進制數字輸入。string mExp = "1.50 + 2.50";string[] strNum = (Regex.Split(mExp, @"[\D+]"));num1 = double.Parse(strNum[0]);num2 = double.Parse(strNum[1]);
2 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
您可以更改正則表達式以分割一定數量的空格,后跟算術運算符,后跟空格:
string[] strNum = (Regex.Split(mExp, @"\s*[+/*-]\s*"));
Console.WriteLine(string.Join("\n", strNum));
輸出:
1.50
2.50
要處理負數,您必須使正則表達式更加復雜,并添加數字的后視和數字或 a 的前視-:
string mExp = "-1.50 + 2.50 -3.0 + -1";
string[] strNum = (Regex.Split(mExp, @"(?<=\d)\s*[+*/-]\s*(?=-|\d)"));
Console.WriteLine(string.Join("\n", strNum));
輸出:
-1.50
2.50
3.0
-1
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消