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

让我们来看一些例子:

复制代码 代码如下:

--获取表的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

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

复制代码 代码如下:

\-\-[^\r\n]*$

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

复制代码 代码如下:

\-\-[^\'\r\n]{0,}$

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

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

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

1. 以--开头

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

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

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

复制代码 代码如下:

\-\-([^\'\r\n]{0,}(\'[^\'\r\n]{0,}\'){0,1}[^\'\r\n]{0,}){0,}$

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

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

时间: 2014-02-23

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 写出匹配SQL语句中的所有表名,备忘记录 折磨了好久,正则表达式如下: 复制代码 代码如下: \*\s+from\s+[\w\[\]]*\.?[\w\[\]]*\.?\[?(\b\w+)\]?[\r\

通用 HTML 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣.就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌

在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要用到正则匹配,根据自己的规则去限定请求参数再进行访问 具体实现步骤为: 导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录 自定义转换器:自定义类继承于转换器基类 添加转换器到默认的转换器字典中 使用自定义转换器实现自定义匹配规则 代码实现 导入转换器基类 from werkzeug.routing import BaseConverter 自定义转换器 # 自定义正则转换器 class Re

正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规则)的文本.下面通过实例代码给大家介绍正则表达式匹配(URL.电话.手机.邮箱)的实例代码,一起看看吧! 废话不多说了,直接给大家贴代码了,具体代码如下所示:

今天在Java中想使用正则表达式来获取一段文本中的任意字符.于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,"."(点符号)匹配的是除了换行符"\n"以外的所有字符.同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式.于是我将正则表达式的匹配规则修改如下: ([.\n]*),当然,如果是在java程序中直接写到话,需要改为([.\\n]*) 结果

验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d

已经有多篇关于正则表达式介绍的文章,随着我们越来越多使用正则表达式,想对性能做优化.减少我们正则表达式书写匹配Bug.我们不得不进一步深入了解正则表达式执行过程了.下面我们一起学习,分析下正则表达式执行过程.我们会用regexbuddy测试工具分解执行过程,具体工具使用,可以看:正则表达式性能测试工具推荐.优化工具推荐(regexbuddy推荐).要了解正则表达式解析过程前,我们先来熟悉几个概念. 常见正则表达式引擎 引擎决定了正则表达式匹配方法及内部搜索过程,了解它至关重要的.目前主要流行引擎

本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.

密码形式可以根据开发需求自己设定,下面是几个匹配密码的例子: 正则表达式 ^[a-zA-Z]\w{5,17}$ 匹配 以字母开头,长度在6~18之间,只能包含字符.数字和下划线 不匹配 正则表达式 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$ 匹配 1agdA*$# | 1agdA*$# | 1agdA*$# 不匹配 wyrn%@*&$# f | mbndkfh782 | BNfhjdhfjd&*)%#$) 正则表达式 [^A-Za-z0-9

tsql 正则_使用正则表达式匹配tsql注释语句相关推荐

  1. C++正则匹配中文乱码_中文正则表达式匹配-正则中文匹配

    使用std::wregex #include <QtCore/QCoreApplication> #include <iostream> #include <string ...

  2. input正则邮箱_用正则表达式匹配邮箱地址

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. JAVA正则校验加减乘除,正则表达式匹配加减法算法

    搜索热词 通过键盘输入100以内正整数的加.减运算式,请编写一个程序输出运算结果字符串. 输入字符串的格式为:"操作数1 运算符 操作数2","操作数"与&qu ...

  4. python正则表达式入门_python入门_常见正则表达式匹配

    made_in_miliLV的主页.png - 正则表达式:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.在开发的使用场景 - 例如:匹配url等等 本文中,对正则 ...

  5. 3 域名正则_一个正则表达式怎么会引起线上CPU狂飙?

    作者:陈树义 我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处.通过排查代码,我们知道这个方法的主要功能是校验 URL 是否合法. 很 ...

  6. php正则配ip,正则表达式匹配IP的表达式(推荐)

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  7. java 正则_认识正则表达式(Java语言基础)

    正则表达式: 1. 字符串 2. 表示正确规则的式子 我们做一个SimpleDateFormat例子 首先新建一个工程,创建一个类 我们在获取当前系统时间的时候,我们可以按照下面的方式输出. 会发现输 ...

  8. java正则表达式匹配xml标签_用正则表达式匹配HTML\XML等文件中的标签

    测试用HTML源文件: View Code <完美世界:天界的召唤>缤纷圣诞总动员 [ 中华网 1小时前] 经过了平安夜和圣诞节,节日的气氛被推到了最高点!<完美世界:天界的召唤&g ...

  9. python 正则表达式匹配数字或者小数点_用正则表达式匹配浮点数

    在这个例子中,我将向你展示如何避免不熟悉正则表达式的人常犯的一些错误.我们将尝试建立一个可以匹配浮点数的正则表达式.我们的正则表达式也应该匹配整数,以及整数部分(即0)没有给出来的浮点数. 乍看之下, ...

最新文章

  1. 2021全球最具影响力 AI 学者榜单: 中国占比11.1%,位列第二
  2. Python基础教程:format 格式化字符串用法
  3. eclipse安装maven插件
  4. 信息学奥赛一本通 1123:图像相似度 | OpenJudge NOI 1.8 06:图像相似度
  5. 【Cite 1.7K】Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
  6. MemCache详细解读(转)
  7. 大数据系列1-规划安排
  8. 高效点的全排列算法---堆算法(跟堆排序没关系)
  9. The content of the adapter has changed but ListView did not receive a notification
  10. HTML5七夕情人节表白网页制作【一生守护】HTML+CSS+JavaScript
  11. sftp上传文件到服务器遇到的问题
  12. word文档图标变成白纸_win10word文档图标变白,win10office图标空白
  13. android 表情包下载,表情包制作pro
  14. (SEED-Lab) Sniffing_Spoofing
  15. Springboot中使用freemarker动态生成word文档
  16. mysql 存储过程 sqlyog_sqlyog写mysql存储过程
  17. 云服务器远程一键登录出现SSH connection failed: All configured authentication methods failed *解决办法。
  18. TBS1072B数字示波器波形截图流程
  19. 离散数学图论经典问题之握手定理
  20. 2014校园招聘总结(转载)

热门文章

  1. Linux开启ssh
  2. setenforce: SELinux is disabled解决方案
  3. tf::transformPose,tf::Transform,tf::Stamped,tf::Pose用法
  4. left join fetch 用法实例记录
  5. Java Socket通信之TCP协议
  6. zabbx的服务启动关闭
  7. ORA-22858: 数据类型的变更无效
  8. java long转object_Java 类型转换以及Object转成其他类型
  9. 笔记本onenote绘画快捷键_我的笔记 我的onenote 快捷键
  10. mysql查看表结构三种方法