首页 > 解决方案 > 在 SQL 脚本中选择分号但在行尾排除分号

问题描述

INSERT INTO database 
VALUES (1000008,"JONES, Beverley","GEN-BAB-001-02","L","93;104;185;245","Babcock, John U.E.");

非营利组织维护历史信息来源的数据库。我想替换;部分中的 ,93;104;185;245同时将决赛留;在原地完成记录。

我一直在 MySQL Workbench 中手动转换语法,但我突然想到 Notepad++ 中的 FIND 和 REPLACE 会“快得多”,因为数据库有超过 140 万行代码。我对 REGEX 的短暂欣赏表明确实存在解决方案。

到目前为止,所有更改都是手动的。

标签: regexnotepad++

解决方案


  • Ctrl+H
  • 找什么:(?<!\));
  • 替换为:.您可以更改为您想要的字符。
  • 检查 环绕
  • CHECK 正则表达式
  • 取消选中 . matches newline*
  • Replace all

解释:

(?<!\))     # negative lookbehind, make we haven't a closing parenthesis before
;           # semicolon

给定示例的结果:

INSERT INTO database 
VALUES (1000008,"JONES, Beverley","GEN-BAB-001-02","L","93.104.185.245","Babcock, John U.E.");

屏幕截图(之前):

在此处输入图像描述

屏幕截图(之后):

在此处输入图像描述


推荐阅读