gpt4 book ai didi

c# - 使用正则表达式删除sql脚本文件中的所有GO

转载 作者:太空狗 更新时间:2023-10-30 00:43:52 26 4
gpt4 key购买 nike

我正在尝试解析一种包含创建函数和存储过程等命令的大型 SQL 脚本。每当我找到 GO 语句时,我都想将文件拆分为字符串(我想使用普通的 ado.net 而不是 SMO 来执行它)。

问题是到目前为止我还没有找到合适的正则表达式。使用一个简单的 \bGO\b 忽略大小写将拆分它。但也会在评论中拆分所有 go(s),例如

-- 这个go也要拆分

使用这个表达式 ^\bGO\b[^--]$ 几乎可以解决我的问题,但是当我有两个连续的 GO 时,我会遇到一些错误(无论原因在那里并且在我的域后面)。

end
go
GO

这就是我的脚本中 SP 创建结束的样子。

我用 C# 做

非常感谢

** 编辑 **

一位同事想出了一个解决方案,目前适用于我所有的脚本

^\s*go\s*\r\n

最佳答案

你可以试试这个:

(?i-msnx:\b(?<!-{2,}.*)go[^a-zA-Z])

意思是,如果字符串 go 前面没有 2 个或更多破折号后跟任何内容,则对其进行处理。

这应该可以解决问题!

编辑为仅在单词边界处强制检查

编辑为忽略后跟字母/数字的“go”(最后一次尝试:))并添加了指向正则表达式工具的链接

PS: 如果你还没有找到 this是关于 RE 的重要资源。

PS2:This is a great tool用于 RE 创作/测试

关于c# - 使用正则表达式删除sql脚本文件中的所有GO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9417929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com