您的位置:首页 > 其它

正则表达式法计算字符串算术表达式2

2011-02-07 15:53 134 查看
接着昨天的内容继续学习。

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 & ")"

上面我们把要用到的正则表达式都列举了出来,希望大家能后理解他们的意义。下面,我们将介绍关于正则表达式的重要方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: