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

简介: 原文:C#正则表达式的完全匹配、部分匹配及忽略大小写的问题 问题的提出根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似ABS(表达式),Sin(表达式),ASin(表达式),POW(表达式)等形式表述。
原文: C#正则表达式的完全匹配、部分匹配及忽略大小写的问题

问题的提出

根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似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;
        }
目录
相关文章
|
12月前
|
开发框架 .NET C#
ASP.Net c# 正则表达式 子表达式 group
ASP.Net c# 正则表达式 子表达式 group
64 0
|
2月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
72 0
|
开发框架 .NET C#
【C#】【报错解决】分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
【C#】【报错解决】分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
248 0
【C#】【报错解决】分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
C#编程-88:正则表达式拆分
C#编程-88:正则表达式拆分
C#编程-88:正则表达式拆分
C#编程-87:正则表达式替换
C#编程-87:正则表达式替换
C#编程-87:正则表达式替换
C#编程-86:正则表达式查找
C#编程-86:正则表达式查找
C#编程-86:正则表达式查找
C#编程-85:正则表达式语法复习
C#编程-85:正则表达式语法复习
103 0
C#编程-85:正则表达式语法复习
C#编程:正则表达式符号说明-7
C#编程:正则表达式符号说明-7
106 0
|
编译器 C# C++
☀️ 学会编程入门必备 C# 最基础知识介绍(六)——接口、命名空间、预处理指令、正则表达式、异常处理、文件的输入与输出
前言👻 接口(interface)🎉 定义接口: MyInterface.cs 接口继承: InterfaceInheritance.cs C# 命名空间(Namespace)🎈 定义命名空间 using 关键字 嵌套命名空间 C# 预处理器指令🎄 C# 预处理器指令列表 #define 预处理器 条件指令 C# 正则表达式🔔 定义正则表达式 C# 异常处理🎃 语法 C# 中的异常类 异常处理 创建用户自定义异常 抛出对象 C# 文件的输入与输出⛄️ C# I/O 类 FileStream 类 C# 高级文件操作
☀️ 学会编程入门必备 C# 最基础知识介绍(六)——接口、命名空间、预处理指令、正则表达式、异常处理、文件的输入与输出