我正在尝试构建一个正则表达式,它将在 100 多个 SQL 文件中查找和替换某些 SQL 模式限定的出现。
原始文件可以包含可以(可选)有方括号('['
和']'
)或没有的模式限定。例如,一个脚本文件可能包含:
[database].[dbo].[table_name]
或者
database.[dbo].[table_name]
或者
database.dbo.[table_name]
以及所有可能的组合...
我写了这样的东西:
([)?database(])?\.([)?dbo(]?)\.([?)table_name(]?)
不是真的工作(正则表达式101)
更新(基于答案的解决方案):
基于@Toto 在下面选择的答案进行扩展,添加可能的表别名以匹配以下字符串并提供空格前缀和后缀
database.dbo.table_name tn
(\s+)(\[)?database(\])?\.(\[)?dbo(\]?)\.(\[?)table_name(\]?)((\s+)(tn))?(\s+)?