(三)细粒度正则匹配
按照上面对Select语句的粗粒度划分,继续划分,大致
表名[Tbl],表达式:(?[a-zA-Z_][\w$#]{0,})
表名表达式[TbE],表达式:(?([SbQ]|[Tbl])[Ali]([B12](inner[B12]join|left[ B12]join|right[B12]join|full[B12]join)[B12]([SbQ]|[ Tbl])[Ali][B12]on[B12][CbE]){1,}|([SbQ]|[Tbl])[Ali] (,[B]([SbQ]|[Tbl])[Ali]){0,})
常量[C],表达式:(?[S]|[D])
别名[Ali],表达式:(([B12]as[B12](?[a-zA-Z_][\w$#]{0,}))?)
函数[Fun],表达式:(?[a-zA-Z_][\w$#]{0,}\([^)]{0,}\))
等号表达式[E],表达式: (=|>=|||表达式[ArE],表达式:(?([CbF]|[D]|[SPS])[B]([+|\-|*|/][B]([CbF]|[D]| [SPS])[B])+)
空白(必有1个或1个以上空白)[B12],表达式:(\s+)
空白(无空白或有1个空白)[B01],表达式:(\s?)
空白(可有可无)[B012],表达式:(\s{0,})
连接符号[CS],表达式:(\|\|)
数字[D],表达式:[D]
条件表达式[CdE],表达式:(?([SPS]|(not[B12]exists|exists)[SbQ]|[CRF][B12 ](not[B12]between|between)[B12][CRF][B12]and[B12][C RF])|[CRF][B12](not[B12]in|in)[B12]([C]|\([C](,[C]) {0,}\)|[SbQ])|[CRF][B12](not[B12]like|like)[B12][S] |[CRF][B12](is|is[B12]not)[B12]null|[CRF][B][E][B][ CRF])
选择字段表达式[SeF],表达式:(?[CRF][Ali]|\*)
选择列表达式[SeC],表达式:(?([B12](?ALL|DISTINCT|TOP)[B12]|[B12])(([Se F]|[B],[B]){1,}))
子查询[SbQ],表达式:(?\(select[B12]([^()]+|\((?)|\)(?))* (?(DEPTH)(?!))\))
字段[Fid] ,表达式:(?\*|[a-zA-Z_][\w$#]{0,})
字符串[S],表达式:('[^']+'|"[^"]+")
字符串表达式[StE],表达式:(?([CbF]|[S])[B]\|\|[B]([CbF]|[S]))
复合表达式[CbE],表达式:(?[CdE]([B12](and|or)[B12][CdE]){0,})
复合字段[CbF],表达式:(?[Tbl]\.[Fid]|[Fid])
可代替列字段的结构[CRF],表达式:([StE]|[C]|[Fun]|[SbQ]|[SPS]|[ArE]|[CbF])
圆括号块[SPS],表达式:(?\(([^()]+|\((?)|\)(?))*(?(DEPT)(?!)) \))
完整select语句[Select],表达式:
[B]select[SeC][B12]from[B12][TbE][B12]where[B12][C bE][B]
分享到:
相关推荐
Java正则表达式构造SQL语句Java正则表达式构造SQL语句Java正则表达式构造SQL语句
/*********使用方法**************/ --正则校验(符合为1,... --正则匹配(匹配不为空,不匹配为空) SELECT [dbo].[Regex.Match]('\d+','abcdefghijkl') 不能匹配, [dbo].[Regex.Match]('\d+','0123456789') 能匹配
附件带上了,可以研究研究,构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、...
而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...
一些资料关于 SQL 语法分析;用正则表达式解析C#文件;使用正则表达式实现的语法分析引擎(C#源代码) ;SQL Server 2005正则表达式使模式匹配和数据提取变得更容易;
NULL 博文链接:https://duanhengbin.iteye.com/blog/1962431
模仿SQL语句的正则表达式练习,是我学习正则表达式过程中,对字符串经常sql语句匹配,达到练习正则表达式的目的。语句中包括了,"创建超级用户权限,"*.*"代表数据库里的所有数据,"root"代表超级用户名称,"%"代表...
正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的
正则表达式常用匹配.doc正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用匹配正则表达式常用...
java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式
正则表达式.rar || 正则表达式.rar
JavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全.txtJavaScript验证正则表达式大全....
正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式...
正则表达式,正则表达式,正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则...
易语言正则表达式类匹配中文源码,正则表达式类匹配中文,创建,取正则文本,替换,取匹配数量,取匹配文本,取子匹配文本,取子匹配数量
正则表示测试器 用于测试自己做的正则表达式是否正确,使用起来还是比较方便,这里就不再说明了。 正则狗创建的目的是为了更好的调试正则表达式。之前为了调试正则表达式还要写一段代码运行,现在正则狗就可以方便...
JAVA正则表达式JAVA正则表达式JAVA正则表达式
我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,下面的方法是使用正则表达式匹配tsql注释语句的方法,大家参考使用吧