我有一个sql程序代码。我们正在迁移不同模式上的代码。我需要替换所有的维度表模式。示例:旧模式:DBO.ABC_DIM、DBO.XYZ_DIM更换后:MART.ABC_DIM、MART.XYZ_DIM有谁能让我知道如何使用regex replace来做这件事。感谢Sky
svmlkihl1#
您必须用途:在“查找内容”字段中:
(DBO)\.
在“替换为”字段中:
MART\.
不要忘记将光标放在文件的开头。否则,替换将在实际光标位置之后开始编辑:所以在这种情况下,如果你有其他人,你可以使用它:查找字段:
\b(DBO\.)(.+?)_DIM\b
替换字段:
MART\.$2_DIM
有些人喜欢:
DBO.ABC_DIM, DBO.XYZ_DIM, DBO.ABC_DTL, DBO.ABC_2_BCD
变成:
MART.ABC_DIM, MART.XYZ_DIM, DBO.ABC_DTL, DBO.ABC_2_BCD
最后编辑:
以上失败:
DBO.ABC_DIM, DBO.XYZ_DIM, DBO.ABC_DTL, DBO.ABC_2_BCD, DBO.ABC_DIM, DBO.XYZ_DIM, DBO.ABC_DTL, DBO.ABC_2_BCD, DBO.ABC_DIM, DBO.XYZ_DIM,
因为在第二行匹配DBO.ABC_DTL,DBO.ABC_2_BCD,DBO.ABC_DIM和DBO.ABC_DTL变成MART.ABC_DTL
所以正确的解决方案是:
查找字段:
(DBO\.)(.[^\.]+?)_DIM
j7dteeu82#
如果在VIM中打开该模式,请按esc,然后
esc
:s%/DBO/MART
然后按回车键:s(冒号和s)替换/DBO查找DBO /MART将其替换为MART一旦您验证所有DBO都已替换为MART,您需要保存esc和:wq的更改
:s
/DBO
/MART
:wq
2条答案
按热度按时间svmlkihl1#
您必须用途:在“查找内容”字段中:
在“替换为”字段中:
不要忘记将光标放在文件的开头。否则,替换将在实际光标位置之后开始
编辑:
所以在这种情况下,如果你有其他人,你可以使用它:
查找字段:
替换字段:
有些人喜欢:
变成:
最后编辑:
以上失败:
因为在第二行匹配DBO.ABC_DTL,DBO.ABC_2_BCD,DBO.ABC_DIM和DBO.ABC_DTL变成MART.ABC_DTL
所以正确的解决方案是:
查找字段:
替换字段:
j7dteeu82#
如果在VIM中打开该模式,请按
esc
,然后然后按回车键
:s
(冒号和s)替换/DBO
查找DBO/MART
将其替换为MART一旦您验证所有DBO都已替换为MART,您需要保存
esc
和:wq
的更改