如何在记事本++中的一个大sql行中将特定字符后的某些字符替换为另一个特定字符

时间:2021-06-26 11:02:08

标签: sql search replace notepad++

我有一个包含一千个用户的大型 sql 文件,如下所示:

('someone1@mydomain.com','{SSHA512}JWHCqHzazH2vGneLPfhMKkoAamzvxdNCWYOlhZ+uDx36jHdoMXwQmbEemvUMn7ZG6c9+22noXjjb2hAb99/5A/slscDJPKav','','en_US','maildir','Maildir','/home/vmail','vmail1','mydomain.com/someone1/',0,'mydomain.com','','','normal','',0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,'1970-01-01 01:01:01',0,'',NULL,NULL,'2020-03-19 13:15:58','2015-08-03 06:11:53','2020-03-19 13:15:58','9999-12-31 00:00:00',1'someone1'),
('someone2@mydomain.com','{SSHA512}UoMeyocmdC2DxM0S7B4WFdjnCNuvkngzzLus33h9nugKVlvdhlcboKmMDDuAkCHEyLBUgf8DicKWFPJVS7EOF/ytv27MQ3Ch','','en_US','maildir','Maildir','/home/vmail','vmail1','mydomain.com/someone2/',0,'mydomain.com','','','normal','',0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,'1970-01-01 01:01:01',0,'',NULL,NULL,'2015-12-17 12:27:35','2015-08-03 06:44:10','2021-06-08 06:55:33','9999-12-31 00:00:00',1'someone2'),
('someone3@mydomain.com','{SSHA512}A6ToCf4OfP3XNEU9ngEmGN/LDquH9+s9Qxme3SoJaDyVvxiWpnwwTiAALSdnmhIxDB2VQK0zhdF+jP8ARvh0N3IDL0Xv/KmL','','en_US','maildir','Maildir','/home/vmail','vmail1','mydomain.com/someone3/',0,'mydomain.com','','','normal','',0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,'1970-01-01 01:01:01',0,'',NULL,NULL,'2018-04-03 12:31:09','2015-08-03 06:50:01','2018-04-03 12:31:18','9999-12-31 00:00:00',1'someone3'),
('someone4@mydomain.com','{SSHA512}t7/JbUPQ+rtKeRTgWRH6KlETr2JsqYORBOZouzOzs4Wo6YfHYLoy0m+U4kZXk+AeNgMep2hGZSodPZdK2l2bn9MhOKHOuF/L','','en_US','maildir','Maildir','/home/vmail','vmail1','mydomain.com/someone4/',0,'mydomain.com','','','normal',''0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,'1970-01-01 01:01:01',0,'',NULL,NULL,'2020-03-18 07:48:26','2016-11-14 06:59:04','2021-06-08 05:54:28',9999-12-31 00:00:00',1'someone4')

现在我需要删除与 1 相邻的每个用户的最后一个单词 ('someone1' , 'someone2' , 'someone3' , 'someone4') 看起来像

....9999-12-31 00:00:00',1)

不像原版

....9999-12-31 00:00:00',1'someone1')
....9999-12-31 00:00:00',1'someone2') 

但是不要忘记它们不在不同的行中。所有这一切都在一个大行中,这让我向您寻求帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

似乎(从您的示例中)行除开始和结束字符外不包含任何括号。因此,您可以搜索一个引号 '、多个字母和/或数字以及一个引号 ',而不是 )

这样做;

  • 使用 ctrl+h 快捷方式在 Notepad++ 中打开替换窗口
  • 从搜索模式部分选择正则表达式
  • '[a-zA-Z0-9]*?[-,_,.]*?[a-zA-Z0-9]*?[-,_,.]*?[a-zA-Z0-9]*?[-,_,.]*?[a-zA-Z0-9]*?'\) 来查找什么框
  • 写入 '\) 以替换为框
  • 点击全部替换按钮。

如果用户名包含字母或数字以及 _-. 最多 3 次,则此方法有效。

请确保您有原始文件的副本作为备份。还要注意,如果任何行包含除末尾之外的右括号,我们使用的正则表达式可能会发现不相关的部分。

相关问题