首页 > 解决方案 > 正则表达式 MySQL 插入

问题描述

我从 MySQL 插入中获得了这些文本行,并想添加一个 )。

(2, 1, 1, '', 'xxxx', FROM_BASE64('/9j/4...kf/Z', 'xxx', 0, 'xxx', 'xxx', 'xxx', 'xxx', '', 'xxxx', '', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 0, '', '0', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx'),

我需要在每个 FROM_BASE64('') 中添加一个 )

所以这

(2, 1, 1, '', 'xxxx', FROM_BASE64('/9j/4...kf/Z', 'xxx', 0, 'xxx', 'xxx', 'xxx', 'xxx', '', 'xxxx', '', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 0, '', '0', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx'),

变成这个

(2, 1, 1, '', 'xxxx', FROM_BASE64('/9j/4...kf/Z'), 'xxx', 0, 'xxx', 'xxx', 'xxx', 'xxx', '', 'xxxx', '', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 0, '', '0', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx'),

Base64 字符串后的 )

标签: mysqlregextext

解决方案


Base64 编码不能包含单引号,所以这应该很容易:

s/FROM_BASE64('[^']*'/&)/

解释:

  • '[^']*': 匹配一个单引号,后跟 0 个或多个非单引号字符,然后是另一个单引号
  • &: 完全匹配

你可以在网上试试


推荐阅读