`
shirlly
  • 浏览: 1651734 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

匹配纯数字数学公式的正则表达式

阅读更多
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TestTextBox" runat="server" Width="200" Height="50" />
        <asp:Button ID="Check" Text="检查" runat="server" Width="100" Height="30" OnClick="Check_Click" />
        <asp:Label ID="Testlable" runat="server" />
    </div>
    </form>
</body>
</html>

using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
        }
    }

    protected void Check_Click(object sender, EventArgs e)
    {
        string pattern = @"^(\(*\d+(.\d+)*\)*(\+|-|/|\*))+\d+(.\d+)*\)*$";
        Regex regex = new Regex(pattern);

        if (regex.IsMatch(this.TestTextBox.Text.Trim()))
        {
            this.Testlable.Text = "匹配";
        }
        else
        {
            this.Testlable.Text = "不匹配";
        }
    }
}

其中这里的这则表达式
string pattern = @"^(\(*\d+(.\d+)*\)*(\+|-|/|\*))+\d+(.\d+)*\)*$";
表示的是类似这样的数学公式((1.2+1)*2.8+3)/4
只是简单的匹配,不是很严谨
\d+(.\d+)* 代表整数或小数
\(*代表0个或多个(
(\+|-|/|\*) 这个表示+、-、*、/中的一个对于正则表达式有用到的特殊符号,要用\来转意一下,比如在正则表达式中+代表其前面的字符有1个或多个,所以要表示+的时候要用\+来表达
分享到:
评论

相关推荐

    关于在LABVIEW中使用正则匹配公式.vi

    附件带上了,可以研究研究,构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、...

    C#计算器-使用正则表达式解决

    例如,我们可以定义一个正则表达式来匹配数字和运算符,然后使用`Match`或`Matches`方法来查找符合该模式的子串。 对于计算器而言,我们需要处理的基本运算包括加、减、乘、除。正则表达式可以帮助我们准确地提取出...

    65条最常用正则表达式,你要的都在这里了

    这些正则表达式覆盖了数字匹配、字符集匹配以及常见的应用场景如邮箱、电话号码等的验证。 ### 数字匹配 #### 1. 匹配任意数量的数字 - **正则表达式**: `^[0-9]*$` - **解释**: 开头(`^`)到结尾(`$`)之间的任何...

    正则表达式30分钟入门教程.pdf

    - **递归匹配**:允许模式自身在匹配过程中重复使用,适用于复杂结构的匹配,如HTML标签或数学公式。 #### 8. 处理选项 - **处理选项**:如`i`标志(不区分大小写)、`m`标志(多行模式)等,改变正则表达式的匹配...

    python正则表达式之作业计算器

    在这个计算器中,主要目的是解析用户输入的复杂数学公式,包括加减乘除、括号以及运算优先级。 首先,让我们详细了解一下正则表达式在这项任务中的作用。正则表达式(Regular Expression)是一种强大的文本处理工具...

    boost regex 检测 数学公式

    总结来说,使用Boost.Regex来检测数学公式的正确性涉及构建适当的正则表达式模式,这需要对正则表达式语法有深入理解,并可能结合其他解析技术。虽然正则表达式在很多情况下足够强大,但处理复杂数学公式的完整语义...

    数学运算式简单校验

    一旦我们提取了这些信息,就可以将它们作为变量带入数学公式中进行计算。在C#中,可以使用`System.Math`类提供的各种数学函数,如`Sin`。对于自定义的变量和函数,我们需要构建一个解析器或编译器将表达式转换为可...

    IKExpression技术 运算表达式完美解析

    正则表达式的支持使得IKExpression具备了文本匹配和处理的能力。开发者可以编写正则表达式来查找、替换或验证字符串。例如,通过"str.matches(\"^\\d+$\")"可以判断字符串是否只包含数字。 IKExpression的使用通常...

    编辑数学公式绘制曲线

    "编辑数学公式绘制曲线"这个项目涉及到多个关键的技术点,包括栈的运用、字符串与数字的转换、函数表达式识别、算术表达式计算以及对话框的切分。让我们逐一解析这些技术。 首先,栈是一种非常重要的数据结构,它...

    计算器+QT+VS2013

    “3、使用正则表达式对公式进行开发”揭示了该计算器的一个独特之处,即它可能采用了正则表达式来解析和处理输入的数学公式。正则表达式是一种强大的文本处理工具,能够匹配特定模式的字符串。在计算器中,它可以...

    字符串转换成计算数值公式(c#)

    一种方法是使用正则表达式预处理字符串,移除非数字字符,然后使用内置的转换函数。但这仅适用于相对简单的表达式,对于更复杂的情况,这种方法很快就会变得力不从心。 更高级的解决方案是使用解析器或者词法分析器...

    MATLAB字符串教学课件

    MATLAB还支持LaTeX语法,这使得用户可以在MATLAB中轻松地创建数学公式和符号。LaTeX语法主要用于标注图形中的文本,如图例、坐标轴标签和标题等。通过在字符串中嵌入`\`符号,可以使用LaTeX命令。 #### 结语 通过...

    formulae:Javascript公式解析器

    正则表达式可以帮助我们定义一个模式来匹配特定的字符串格式。 2. **语法分析**:也称为词法分析或扫描,是将输入的公式字符串分解成一系列的词法单元(tokens)。这些tokens可以是数字、变量、运算符等。这个过程...

    表达式解析器源代码(可以计算各种函数).zip

    1. **词法分析**:这是通过正则表达式或者词法分析器库来识别并分类表达式中的各个元素,如数字、运算符、括号等。 2. **语法分析**:使用递归下降解析或基于LR、LL、LALR等算法的解析器生成器,构建抽象语法树。这...

    C# 字符串公式计算

    这可能涉及到正则表达式的使用,用于识别和提取数字、运算符和括号等元素。例如,我们可以使用`Regex.Split()`来分隔字符串,或者`MatchCollection`来匹配特定模式。 2. **语法分析**:这是将字符串转换为可执行...

    字符串表达式校验&求值(C#实现)

    我们可以使用递归下降解析器或者词法分析器(如正则表达式)来完成这个任务。例如,检查表达式中左括号和右括号的数量是否相等,确保每个运算符都有相应的操作数,同时还要确保运算符的使用符合语法规则。 三、中缀...

    VB字符串转换成函数表达式实例源码.rar

    这个功能在处理用户输入的计算请求或者解析数学公式时非常有用。 描述中的内容展示了该实例可能处理的一些具体表达式,例如"sim cos"和"Sqr(19-Tan(98)*Tan(91)-Sin(122)*(5*5-(199-12)))"。这里,“sim”和“cos”...

    杭电计算机院 复试笔试题包括2016年

    解决此类问题需要对字符串进行操作,可以通过正则表达式匹配文本中的数字,并进行相应的数组操作和循环控制来实现。 3. 几何问题——线段长度的计算 题目描述了平面上的点可以构成的线段,要求求出这些线段的最大...

    安卓表达式计算器源代码(aide开发)

    在Java中,这通常涉及到字符串处理、正则表达式匹配以及数学运算符优先级的处理。主要知识点包括: 1. **用户界面(UI)设计**:使用Android的布局管理器(如LinearLayout、RelativeLayout或ConstraintLayout)构建...

Global site tag (gtag.js) - Google Analytics