regex - 在 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 的短暂欣赏表明确实存在解决方案。
到目前为止,所有更改都是手动的。
解决方案
- 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.");
屏幕截图(之前):
屏幕截图(之后):
推荐阅读
- c# - "The page cannot be displayed because an internal server error has occurred.""
- javascript - 如何制作类似于 Ad-blocker 的徽章计数器?
- java - 有没有办法将 firestore 中的数据值存储到数组中?
- python - 在哪里包装函数
- android-9.0-pie - How to make a call via dialer programmatically in android Pie and above
- node.js - 将通过 express 中间件初始化的对象传递给下一个中间件
- angular - 基于类型渲染动态模板
- python - 带有大文件的 lxml:根据属性过滤掉子树
- mysql - 添加 FOREIGN KEY 但说该列不存在?
- amazon-dynamodb - DynamoDB - 获得 N 个随机项目?(图式问题)