?? form1.cs
字號(hào):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using regularExpression = System.Text.RegularExpressions;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string sss="[a-zA-Z_]";
regularExpression.Regex re= new System.Text.RegularExpressions.Regex(sss);
//regularExpression.Match mat = re.Match(textBox1.Text);
if (re.IsMatch(textBox1.Text))
MessageBox.Show("true");
else
MessageBox.Show("false");
//button1.Text = ""+Compute(textBox1.Text);
}
string expr;
int pos;
public double Compute(string exp)
{
pos = 0;
expr = regularExpression.Regex.Replace(exp, @"\s+", "");
return addsubt();
}
double addsubt()
{
double rtn = multdiv();
while (pos < expr.Length && (expr[pos] == '+' || expr[pos] == '-'))
{
char op = expr[pos++];
double opr2 = multdiv();
if (op == '+')
rtn += opr2;
else
rtn -= opr2;
}
return rtn;
}
double multdiv()
{
double rtn = number();
while (pos < expr.Length && (expr[pos] == '*' || expr[pos] == '/'))
{
char op = expr[pos++];
double opr2 = number();
if (op == '*')
rtn *= opr2;
else
rtn /= opr2;
}
return rtn;
}
double number()
{
double rtn;
string _rtn;
if (expr[pos] == '(')
{
pos++;
rtn = addsubt();
if (expr[pos++] != ')')
//throw new Exception("缺少關(guān)閉括弧!");
textBox2.Text = "缺少關(guān)閉括弧!";
return rtn;
}
if (pos >= expr.Length)
//throw new Exception("錯(cuò)誤的表達(dá)式!");
textBox2.Text = "錯(cuò)誤的表達(dá)式!";
_rtn = Convert.ToString(expr[pos]);
int pn = 0;//小數(shù)點(diǎn)個(gè)數(shù)
while ((pos < expr.Length - 1) && (char.IsDigit(expr[pos]) || expr[pos] == '.'))
{
pn += expr[pos] == '.' ? 1 : 0;
pos++;
_rtn += Convert.ToString(expr[pos]);
}
if (pn > 1)
//throw new Exception("小數(shù)點(diǎn)錯(cuò)誤!");
textBox2.Text = "小數(shù)點(diǎn)錯(cuò)誤!";
regularExpression.Match m = regularExpression.Regex.Match(_rtn, @"^\d+(\.\d*){0,1}(?=[\+\-\*/\)])|^\d+(\.\d*){0,1}$");
if (!m.Success)
//throw new Exception("錯(cuò)誤的表達(dá)式!");
textBox2.Text = "錯(cuò)誤的表達(dá)式!";
rtn = Convert.ToDouble(m.Value);
return rtn;
}
private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e)
{
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -