正则表达式 测试工具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#里用的时候忽略大小写选项开了么,表达式字符串前@加了么

正则表达式 测试工具Matches有结果,但是在C#里面用Matches就匹配不出...
我感觉是“(create)\\s(table)\\s\\S*\\s”中的\\S*\\s有问题,被匹配字符串Table xxx(中的xxx(显然不满足\\S*\\s的要求。我这里把\\S*\\s改成\\w*就好用了。后边的嵌套匹配应该没什么问题,只是我这边是用(?<Open>\\))这种格式记忆深度的。。。

C#正则表达式匹配无结果
正则 .*?\\s+Hash:(.*?) u\\s+(.*?) ([0-3][0-9]), (.*?) .*?Size:(.*?)

简要介绍C#中正则表达式Regex的match和matches方法
string pattern = "\\\\(\\\\w+\\\\)";Match result = Regex.Match(s,pattern);MatchCollection results = Regex.Matches(s,pattern);然后你会看到 result.Value = {(bbb)};results[0].Value = {(bbb)};results[1].Value = {(bb)};也就是match会捕获第一个匹配。而matches会捕获所有的匹配。

用c#一个正则表达式匹配到了多个符合正则的结果!
使用Regex的Matches方法可以返回一个MatchCollection对象,这个对象返回了当前输入的所有匹配的集合 或者使用Match方法返回第一个匹配,他是一个Match对象,使用Value即可获取当前Match的匹配结果 如果有多个匹配可以继续调用Match对象的NextMatch得到下一个匹配Match对象,但是这个Match对象不一定匹配,可以调用Success获取...

请问java中* ?可以用matches()方法匹配吗?请看补充
在正则表达式中*不是代表通配符的,*的意思是其之前的规则允许出现任意次(包括0次)正则表达式中的通配任意字符用".(点)"号

正则表达式,C#用正则表达式提取东西出来
用正则表达式和C#语言把里面的11111、xxx、333、yy、5555提取出来的C#语言程序如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication2{ class Program { static void Main(string[] args) {...

求教C#正则表达式
所谓零宽,指的是它们不与任何字符相匹配,而匹配一个位置;所谓断言,指的是一个判断。正则表达式中只有当断言为真时才会继续进行匹配。在有些时候,我们精确的匹配一个位置,而不仅仅是句子或者单词,这就需要我们自己写出断言来进行匹配。下面是断言的语法:断言语法 说明(?=pattern) 前向肯定断言,匹配pattern前面的位置...

正则表达式“或“的使用
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数...

在UltraEdit中使用正则表达式
另一个是”Unix”类型的正则表达式,这个集合在ultraedit的默认配置中是没有启用的,需要在配置中找到search项,启用Unix类型的正则表达式。 语法集合一: 符号 功能% 匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。$ 匹配行尾 - 显示搜索字符串必须在行尾,但是在所...

请问这个python正则表达式是什么意思?matches = re.findall('([^\\s...
这里的^匹配非中括号里的字符;\\s代表空格;\\\\\\代表字符反斜杠(正则表达式需要双反斜杠来转义,因为\\在正则表达式中本身就具有含义)line = 'haha \\\\\\ \\\\ hehe'matches = re.findall('([^\\s\\\\\\]+)', line)print matches # ['haha', 'hehe']望采纳!

相似回答
大家正在搜