gpt4 book ai didi

MySql 正则表达式查找文本中的不同字符串

转载 作者:行者123 更新时间:2023-11-29 19:23:21 25 4
gpt4 key购买 nike

我有一个网站,用户可以使用自己的内容创建子网站。它类似于 wix.com。可以在内容中创建链接,一些用户正在滥用此功能链接到恶意软件网站。

用户的内容存储在 MySQL 数据库中名为 pages 的表中,位于 content 列内。

我想查找包含以“http”开头但不包含我的两个域之一的字符串的所有内容(假设它们是 mysite.comanother.com )。这会有所帮助,因为几乎每个内容都包含到这两个网站的链接,但很少包含到其他网站的链接。

例如:我想捕获http://badsite.com,但我不想捕获http://subdomain.mysite.com/page1http://name.another.com/?page=products

此外,我想捕获 http://badsite.com,即使文本还包含指向我的域之一的链接(例如 http://sub.mysite .com/)。因此,下面的查询将不起作用:

select * 
from pages
where content like '%http%'
and content not like '%mysite.com%'
and content not like '%another.com%'

想要捕获的文本示例:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, < a href="http://sub.mysite.com/">sed< /a> do eiusmod < a href="http://badsite.com">tempor< /a> incididunt ut labore et dolore magna aliqua.

不想捕捉的文本示例:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, < a href="http://sub.mysite.com/">sed< /a> do eiusmod < a href="http://prefix.another.com/page2">tempor< /a> incididunt ut labore et dolore magna aliqua.

简而言之,我想查找链接到 mysite.com 或 another.com 以外的任何域的所有页面。

我认为我必须使用正则表达式来实现此目的,但我不知道该怎么做。

最佳答案

检查此部分:https://dev.mysql.com/doc/refman/5.7/en/regexp.html

对于条件组合,请考虑使用括号进行逻辑运算,它们将帮助您表达您想要的任何内容,例如:

(cond1 OR cond2) AND NOT cond3 AND cond 4 ...等等,等等

关于MySql 正则表达式查找文本中的不同字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com