正则表达式 – Vim语法高亮 – 从模式中排除特定文本
发布时间:2020-12-14 06:07:34 所属栏目:百科 来源:网络整理
导读:我在我的语法文件中定义了sqlVariable和sqlString syn match sqlVariable ":[a-z][a-z0-9_#$]*"syn region sqlString start=+'+ end=+'+ contains=sqlVariable (加上一些其他的引用变体.)字符串可以包含sqlVariable,以突出显示动态代码中的绑定,例如:b1在’
我在我的语法文件中定义了sqlVariable和sqlString
syn match sqlVariable ":[a-z][a-z0-9_#$]*" syn region sqlString start=+'+ end=+'+ contains=sqlVariable (加上一些其他的引用变体.)字符串可以包含sqlVariable,以突出显示动态代码中的绑定,例如:b1在’select a from b where c =:b1’中. (这适用于Oracle顺便说一句.) 这一切都很好用 – 除了包含冒号的日期格式掩码的特定烦人情况,例如 to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') :MI和:SS被突出显示为变量,因为它们当然与我的模式匹配. 有没有办法:MI和:SS不匹配带引号的字符串中的sqlVariable? (我认为只有这两种情况才会这样做.) 解决方法
这有帮助吗?
syn match sqlVariable ":[a-z][a-z0-9_#$]*ze(s|'$)" 它将匹配那些:foo如果它们后跟一个空格或’那么EOL($). 所以,:a1:b1和:c1将匹配: 'select * from foo where a= :a1 and b=: b1 and c = :c1' 但没有匹配: to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') 希望能帮助到你. 如果没有,也许您可??以重新考虑区域定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |