MySQL移除链接文本末尾部分:处理表中description字段图片链接
解决方案:移除img标签src中的后缀乱码
嘿,这需求很清晰!你要做的就是精准定位description列里img标签src属性中,example.com/数字串/后面的那段多余乱码,然后把它删掉。下面分两种常用场景给你具体实现:
1. 数据库直接更新(以MySQL/PostgreSQL为例)
如果你的表存在数据库里,用正则替换函数就能直接批量处理:
MySQL 写法
-- 先测试替换结果,确认没问题再执行UPDATE SELECT REGEXP_REPLACE(description, '(<img src="https://example.com/[0-9]+/)[^"]+"', '\\1"') AS cleaned_description FROM your_table; -- 确认正确后执行更新 UPDATE your_table SET description = REGEXP_REPLACE(description, '(<img src="https://example.com/[0-9]+/)[^"]+"', '\\1"');
PostgreSQL 写法
PostgreSQL的正则替换语法类似,只是转义符不用双反斜杠:
-- 测试 SELECT REGEXP_REPLACE(description, '(<img src="https://example.com/\d+/)[^"]+"', '\1"') AS cleaned_description FROM your_table; -- 更新 UPDATE your_table SET description = REGEXP_REPLACE(description, '(<img src="https://example.com/\d+/)[^"]+"', '\1"');
正则说明:
(<img src="https://example.com/\d+/):捕获img标签src中example.com/数字串/这部分内容[^"]+:匹配从斜杠到下一个双引号之间的所有非引号字符(也就是你要删掉的乱码)- 替换为
\1":只保留捕获的部分,加上闭合的双引号,完美去掉后缀
2. Python脚本处理(如果是导出后处理文本)
如果是把数据导出到本地用Python处理,代码更直观:
import re # 示例原始文本 original_content = '<center> texttextffjfjfffkfkf <img src="https://example.com/43435565653554/687474703a2f2f736f757" alt="\"> <img src="https://example.com/22223445556565/687474703a2f243434344" alt="\"> fgfgfgfgfgfgfgfgfgfg <center>' # 正则替换 cleaned_content = re.sub(r'(<img src="https://example.com/\d+/)[^"]+"', r'\1"', original_content) # 输出结果 print(cleaned_content)
执行后得到的结果就是你想要的:
texttextffjfjfffkfkf ![]()
fgfgfgfgfgfgfgfgfgfg
小提示:如果example.com后面的路径不是纯数字(比如有字母/下划线),把正则里的\d+改成[^/]+就可以适配啦!
内容的提问来源于stack exchange,提问作者cleanguy
相关产品推荐
相关产品推荐

