首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么用正则表达式判断括号配对的正确性

2012-08-14 
如何用正则表达式判断括号配对的正确性?VB codeSub fff()Dim oRegAs RegExp As VBScript_RegExp_55.RegEx

如何用正则表达式判断括号配对的正确性?

VB code
Sub fff()  Dim oReg  As RegExp 'As VBScript_RegExp_55.RegExp  Set oReg = New RegExp  With oReg    .Pattern = "^((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*[-+*/]?)*(((\()((0|[1-9][0-9]*)+([+*/-](0|[1-9][0-9]*))*)+[-+*/]?)+((\))([-+*/](0|[1-9][0-9]*)[-+*/]?)*)+)*((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*)*$"    s = "1+6*(2+(3-1)/1+(9-5*1))))"    Debug.Print .Test(s)  End WithEnd Sub


问题是不管正确与否,Debug.print .
s = "1+6*(2+(3-1)/1+(9-5*1))"
s = "1+6*(2+(3-1)/1+(9-5*1)"
s = "1+6*(2+(3-1)/1+(9-5*1))))"

Debug.Print oReg.Test(s)的结果总是True
***********************


程序依据JS的括号配对问题

http://topic.csdn.net/u/20090719/22/84ecbe48-2bab-4d7f-8222-3cb7f232a451.html?seed=308770229&r=79188478#r_79188478


请问,各位高手正则表达式如何判断括号配对的正确性。谢谢。









[解决办法]
学习中,正则总写不对咯,不过你应该像HTML那样成对描述.

[解决办法]
探讨
看来要实现括号配对,需要使用正则表达式有一年以上功底才能实现。
凭现在的对正则表达式的功底,暂时解决起来有些麻烦。

[解决办法]
正则表达式不是万能的。
有限状态自动机是万能的。
参考
《编译原理》词法分析 有限状态自动机
[解决办法]
探讨
引用:
引用:
……
依本人的VB功底要学会“数学表达式的分析器”要多少时间。……

热点排行