接着昨天的内容继续学习。
8、"(?<pow1>" & num & ")\^ (?<pow2>" & num & ")
该表达式比较简单,是幂的运算。如字符串"123.123^3.32"就匹配该规则。程序中定义为
Const pow As String = "(?<pow1>" & num & ")\^(?<pow2>" & num & ")"
9、"(?<fone>(exp|log|log10|abs|sqr|sqrt|sin|cos|tan|asin|acos|atan|))\s*\((?<fone1>" & num & ")\)"
该表达式中,(?<fone>(exp|log|log10|abs|sqr|sqrt|sin|cos|tan|asin|acos|atan|))的意思是如果待处理的字符串中含有exp|log|log10|abs|sqr|sqrt|sin|cos|tan|asin|acos|atan的任意一个函数,则将其命名为fone;\s*\(的意思是上述的函数后须有一个左括号且括号左边可以有空白字符;((?<fone1>" & num & ")地意思是,如果待处理的字符串含有一个浮点数,则将其命名为fone1;最后的\)表示待处理的字符串须含有右括号。如字符串"sin(2.33)"、"cos (3)"就是一个匹配该规则的字符串。程序中定义为
Const fone As String = "(?<fone>(exp|log|log10|abs|sqr|sqrt|sin|cos|tan|asin|acos|atan|))\s*\((?<fone1>" & num & ")\)"
10、"(?<ftwo>(min|max)\s*)\((?<ftwo1>" & num & "),(?<ftwo2>" & num & ")\)"
这是一个处理比较两个浮点数大小的规则。如min(3,4)或max(3,4)就符合该规则。程序中定义为:
Const ftwo As String = "(?<ftwo>(min|max)\s*)\((?<ftwo1>" & num & "),(?<ftwo2>" & num & ")\)"
上面一共定义了10种正则表达式,可以将它们合并起来,这样就可以对待处理字符串进行综合的匹配判断。文中定义合并的正则表达式为:
Const pattern As String = "(" & fone & "|" & ftwo & "|" & modu & "|" & pow & "|" & div & "|" & mul & "|" & subt & "|" & add & "|" & nump & ")"
上面我们把要用到的正则表达式都列举了出来,希望大家能后理解他们的意义。下面,我们将介绍关于正则表达式的重要方法。
评论