加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:49:34 所属栏目:PHP教程 来源:网络整理
导读:我们有一个使用wordpress的网站,我们发现在某些时候,一个糟糕的插件或用户错误在siteurl之后添加了两个斜杠(例如,http://example.site//category1/或http:// example. site / category1 // category2 /等 这似乎有效,但看起来效果不够. SELECT id,post_con
我们有一个使用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.

祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读