当前位置:  数据库>sqlserver

使用正则表达式匹配tsql注释语句

    来源: 互联网  发布时间:2014-10-13

    本文导语:  让我们来看一些例子: 代码如下:--获取表的count信息select count(*) from T with(nolock) --获取特定值的count信息select count(*) from T with(nolock)where v = '--value' --获取表'T'的count信息select count(*) from T with(nolock) SELECT * from T --获取表TWhere P 我们...

让我们来看一些例子:

代码如下:

--获取表的count信息
select count(*) from T with(nolock)

--获取特定值的count信息
select count(*) from T with(nolock)
where v = '--value'

--获取表'T'的count信息
select count(*) from T with(nolock)

SELECT * from T --获取表T
Where P

我们先来试着给出一个简单的匹配:

代码如下:

--[^rn]*$

你会发现,它连第二条的SQL也匹配到了,这是不对的。看起来,我们应该排除"'"里面的, 我们再来改改:
代码如下:

--[^'rn]{0,}$

还是不对,这下虽然第二条的SQL没有匹配,但连第三条的都不匹配了,看起来还是不对。

那到底怎么样才能真正匹配到所有的SQL注释呢?

首先我们来总结一下SQL注释的一些特点:

1. 以--开头

2. 注释的内容,应该不会被包含在一对''之内

3. 注释应该只会在最后,前面可以可选的出现一些语句

好了,收集到了这些之后,我们最终的SQL注释的语法也出来了:

代码如下:

--([^'rn]{0,}('[^'rn]{0,}'){0,1}[^'rn]{0,}){0,}$

这一下,四条SQL的注释全匹配到了,正则表达式太强大了吧。

这个SQL语句有一个小小问题,就是后面不能有一个单的单引号存在,否则就会匹配有问题。(因为人们的习惯对于这种分隔符默认是成双出现的,这个小问题其实也是可以忽略的)


    
 
 

您可能感兴趣的文章:

  • java使用正则表达校验手机号码示例(手机号码正则)
  • 正则表达式问题,使用正则表达式找出指定字符串并替换?
  • Javascript里的两种使用正则的方法
  • 哪些命令可以使用正则表达式
  • 正则表达式中使用变量赋值
  • java使用正则表达为数字添加千位符的简单方法
  • Linux find命令的搜索路径可否使用正则表达式
  • js 正则使用方法
  • 关于在shell脚本中使用正则表达式的问题
  • php使用正则过滤js脚本代码实例
  • 请问linux下有哪些轻量级的正则表达式库,我在一个应用中使用
  • 使用正则表达式复制问题:cp
  • 使用正则表达式替换表情符号核心代码
  • 怎么样使用正则表达式表示回文?
  • DreamWeaver中使用正则技术搜索
  • 正则在FireFox和IE下使用test的不同
  • asp match正则函数使用Matchs实例
  • python 正则式使用心得
  • 在C/C++里面使用正则表达式通配搜索,结果非预期
  • mysqlhotcopy 正则使用小技巧
  • Unix中最简单的问题:输入一个表达式,显示其结果。使用SCO OpenServer
  • python基础教程之lambda表达式使用方法
  • 在使用JDK1.4的正则表达式功能时,发现如果被搜索的字符太多,例如一篇文章.就会报错
  • 特急!!!如何使用regexp来进行正则表达式的匹配?
  • java正则表达式使用示例
  • C#的正则表达式Regex类使用简明教程
  • JavaScript 使用正则表达式进行表单验证的示例代码
  • c#字符串使用正则表达式示例
  • sp_executesql 使用复杂的Unicode 表达式错误的解决方法
  • c#使用正则表达式匹配字符串验证URL示例
  • C#正则表达式使用方法示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VIM 注释插件使用
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • C#注释的一些使用方法浅谈
  • Android Eclipse 注释模板的使用(图文说明)
  • 关于Vim的使用问题,怎么加Vim建立的程序文件中,自动添加初始化注释
  • 注释掉未使用变量,导致程序运行崩溃问题.
  • CSS条件注释的使用详解教材
  • 不同版本IE使用不同css(css条件注释语句用法)
  • discuz加密解密函数使用方法和中文注释
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • linux iis7站长之家
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • c/c++预处理命令预#,##使用介绍
  • asp程序使用的access在Linux下如何使用!
  • 在div中使用css让文字底部对齐的方法
  • 新装的Linux使用root用户不能使用FTP?
  • Python namedtuple(命名元组)使用实例
  • LINUX下使用Eclipse,如何使用交叉编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3