php – MySQL正则表达式,用于在正文中使用双斜线查找内部URL

我们有一个使用wordpress的网站,我们发现在某些时候,一个糟糕的插件用户错误在siteurl之后添加了两个斜杠(例如,http://example.site//category1/或http:// example. site / category1 // category2 /等

这似乎有效,但看起来效果不够.

SELECT id,post_content
FROM `wp_posts`
where post_content
regexp '(href="[^"]*[^:]\/\/[^"]*)'
and post_status  in('draft','publish')
order by id asc

一个更好的方法吗?我不希望它在http:之后的双斜杠上匹配,因此在:的负匹配.

编辑:为了澄清,我想找到所有帖子(wordpress帖子/页面的正文)有一个硬编码到具有双斜线的页面的URL,但在http:.之后的双斜杠上不匹配.

Regexp应匹配以下内容
http://example.site//category1/或http://example.site/category1//category2/或甚至http://example.site/category1/category2//或example.site/category1//category2/

但不应该匹配以下内容
http://example.site/category1/或http://example.site/category1/category2/

解决方法

也许这样的事情会起作用.

SELECT *
FROM wp_posts
WHERE CASE WHEN instr(post_content,'http://') > 0 THEN 
  substring(post_content,7) regexp '\/\/'
ELSE
  post_content regexp '\/\/'
END

这是SQL Fiddle.

祝好运.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...