首页 > 编程语言 >C#正则表达式的完全匹配、部分匹配及忽略大小写的问题

C#正则表达式的完全匹配、部分匹配及忽略大小写的问题

时间:2023-02-27 21:03:05浏览次数:39  
标签:匹配 string C# expr mathFun 大小写 Math Sin 表达式


问题的提出

根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似ABS(表达式),Sin(表达式),ASin(表达式),POW(表达式)等形式表述。

由于用户输入的可能是不区分大小写,而且可能用Sin,Asin,Tan,Tanh等(具体见下面代码中所述的函数),因此,要求解决完全匹配和部分匹配的问题,还要解决忽略大小写的问题。

将用户的函数前加“Math.”,后跟函数名称及括号等。

实现如下:

//用于数学计算的函数
List<string> listMathFunctions = new List<string>(new string[]{
"Abs", "Acos", "Cos","Asin", "Atan", "Atan2", "Ceiling", "Cosh", "Exp", "Floor", "Log", "Log10",
"Max", "Min", "PI", "Pow", "Round", "Sign", "Sin", "Sinh", "Sqrt", "Tan", "Tanh", "Truncate"});
public string MatchReplaceMathFunctions(string expr)
{

foreach (string mathFun in listMathFunctions)

{

expr = Regex.Replace(expr, @"[^<>=Math\.]" + mathFun + @"\s*\(", " Math." + mathFun + "(", RegexOptions.IgnoreCase | RegexOptions.RightToLeft);

}

return expr;

}


标签:匹配,string,C#,expr,mathFun,大小写,Math,Sin,表达式
From: https://blog.51cto.com/JohnsonJu/6089171

相关文章