using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace businessLogicLib
{
/// <summary>
/// 2018-1-10 萧頔
/// </summary>
public class FormulaSettingBll
{
public static bool check(string str)
{
if (str.Equals(""))
{
return false;
}
//如果有连续的符号的话返回false
if (Regex.IsMatch(str, @"[+-/\\*]{2,}"))
{
return false;
}
//如果出现连续的括号的话返回false
if (Regex.IsMatch(str,@"[\(\)]{2,}"))
{
return false;
}
//如果左括号后面出现+*/符号的时候返回false
if (Regex.IsMatch(str, @"\([+/\\*]+"))
{
return false;
}
//如果右括号后面出现数字或者没有出现+-*/的时候返回false
if (Regex.IsMatch(str, @"\)[^+-/\\*]"))
{
return false;
}
//如果左括号前面没有出现+-*/的时候返回false
if (Regex.IsMatch(str, @"[^+-/\\*]+\("))
{
return false;
}
//如果右括号前面出现+-*/的时候返回fasle
if (Regex.IsMatch(str, @"[+-/\\*]+\)"))
{
return false;
}
//递归检查括号是否成对出现
char item;
Stack s = new Stack();
foreach(char i in str)
{
item = i;
if(item == '(')
{
s.Push('(');
}
else if(item == ')')
{
if(s.Count > 0)
{
s.Pop();
}
else
{
return false;
}
}
}
if(s.Count != 0)
{
return false;
}
return true;
}
}
}
C#使用正则表达式检查数学公式的正确性
最新推荐文章于 2024-05-29 19:54:41 发布