正则表达式 测试工具Matches有结果,但是在C#里面用Matches就匹配不出东西(我可以给更多分)

用 The Regulator 测试的表达式, 在Matches里面有结果,
可是在C#中Regex.Matches 却无法匹配出结果
表达式如下 : (create)\s(table)\s\S*\s(\([^()]*(((?'Open'\()[^()]*)+((?'-Open'\))[^()]*)+)*(?(Open)(?!))\))

目标是匹配建表的SQL语句: Create Table xxx(xxxxxxx)

我的QQ: 370814493 在线等待,谢谢
已经加“@”转义了 还没人回答啊。。。。啊啊啊啊

第1个回答  2010-01-08
我感觉是“(create)\s(table)\s\S*\s”中的\S*\s有问题,被匹配字符串Table xxx(中的xxx(显然不满足\S*\s的要求。我这里把\S*\s改成\w*就好用了。后边的嵌套匹配应该没什么问题,只是我这边是用(?<Open>\))这种格式记忆深度的。。。
第2个回答  2010-01-07
修改成这样试试,可能是括号没有处理好 “(” 也是元字符

create\stable\s\S+\s*\([^\(\)]*(((?'Open'\()[^\(\)]*)+((?'-Open'\))[^\(\)]*)+)*(?(Open)(?!))\)本回答被提问者采纳
第3个回答  2010-01-04
C#里用的时候忽略大小写选项开了么,表达式字符串前@加了么
相似回答
大家正在搜