Python 与 mysql 正规则不一样吗? 问个 mysql 数据替换的正规则。哪位朋友帮我看看下面 mysql 正规则有什么问题? 谢谢

2020-09-13 19:12:07 +08:00
 python30
数据库里有一些下面格式的图片:
<p><img alt="100 句常" title="100 句常,不犯错" src="http://pic.baidu.com/image/32778.jpg"></p>

这图片地址里只有 http://pic.baidu.com 是不变的其它都是变的

也有一些的图片

<p><img alt="sadfasdfasdfdsf" title="dfasdfasdff" src="http://pic.google.com/image/32778.jpg"></p>

现在只想把全部的 带 http://pic.baidu.com 这个网址的图片替换掉,也就是清除了。

在 mysql 数据库里 ,怎么写正规则能完成这个 或者 有什么好的方法吗?

update `bodytext` set body=replace(body, '<p><img alt=".*" title=".*" src="http://pic.baidu.com.*"></p>', '');

上面是我写的。不成功。

请哪位熟悉 mysql 的朋友帮我看看怎么改?
谢谢。
1849 次点击
所在节点    Python
7 条回复
zhoudaiyu
2020-09-13 19:53:18 +08:00
不太一样,有坑。
herozzm
2020-09-13 20:14:52 +08:00
regex101 去看看 正则有好几种规则
zhangysh1995
2020-09-13 20:27:11 +08:00
@python30

````
select REGEXP_LIKE('<p><img alt="." title="." src="http://pic.baidu.com.xxx"></p>',
'<p><img alt="\\..*" title="\\..*" src="http://pic.baidu.com\\..*"></p>') as yes;
````
zhangysh1995
2020-09-13 20:31:50 +08:00
python30
2020-09-13 23:28:43 +08:00
@zhangysh1995
谢谢
我忘了说了
我的 mysql 版本是 5.7
不知道有什么方法能实现我想要的功能?
royzheng
2020-09-14 08:02:17 +08:00
你用 python 写个更新的代码更新下不就得了?
zhangysh1995
2020-09-14 13:05:13 +08:00
@python30 5.7 没有原生正则支持,可以自己写个函数,参考 https://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql

不过我觉得楼上说的 Python 处理也挺好,先用 SQL 把满足条件的筛选出来返回给脚本,再用 SQL 更新回去。数据量不是太大的话应该还好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706657

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX