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

有没有人在啊,想请讲解下,正则表达式 测试工具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 在线等待,谢谢
已经加“@”转义了 还没人回答啊。。。。啊啊啊啊
最新回答
等待我

2024-11-06 03:00:13

我感觉是“(create)\s(table)\s\S*\s”中的\S*\s有问题,被匹配字符串Table xxx(中的xxx(显然不满足\S*\s的要求。我这里把\S*\s改成\w*就好用了。后边的嵌套匹配应该没什么问题,只是我这边是用(?<Open>\))这种格式记忆深度的。。。
天堂若比邻°く

2024-11-06 00:32:37

修改成这样试试,可能是括号没有处理好 “(” 也是元字符

create\stable\s\S+\s*\([^\(\)]*(((?'Open'\()[^\(\)]*)+((?'-Open'\))[^\(\)]*)+)*(?(Open)(?!))\)
一梦红尘

2024-11-06 10:31:16

C#里用的时候忽略大小写选项开了么,表达式字符串前@加了么