匹配纯数字数学公式的正则表达式
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个或多个,所以要表示+的时候要用\+来表达