通过postgresql检查列中的四位数条目

Checking four-digits entries in a column by postgresql

提问人:Dim Ch 提问时间:6/24/2023 最后编辑:Dim Ch 更新时间:6/24/2023 访问量:51

问:

我在postgesql中有一个用户数据表。我对垃圾邮件发送者在电子邮件地址字段中使用四位数组合有一定的了解。例如,“[email protected]”或“[email protected]”。不幸的是,这种四位数的组合可能位于电子邮件字符串的任何地方。任务是仅通过sql手段选择表中包含此类组合的那些行。请帮忙。也许某种正则表达式可以解决问题。是的,我了解覆盖真人电子邮件的危险 - 我对此进行了很好的额外检查。

我尝试了愚蠢的“LIKE '%[0-9][0-9][0-9][0-9]%'”检查,但没有结果。我希望只选择在给定字段的任何位置包含“DDDD”组合的表格行。如果答案是基于使用某种函数来精确地找到类似年份的条目 - 它将适合。

PostgreSQL 选择 数字

评论


答:

0赞 Tim Biegeleisen 6/24/2023 #1

您可以使用具有以下模式的 POSIX 正则表达式匹配:\d{4}

SELECT *
FROM yourTable
WHERE email ~ '\d{4}';

评论

0赞 Dim Ch 6/24/2023
谢谢你,蒂姆!你建议的表达方式成功了。实际上,我做了功课,并在谷歌上仔细搜索了解决方案,但没有发现任何接近您的答案的东西。简单而辉煌。我是这个平台的新手,但如果有一些合法的方式可以向你表达我的感激之情,我很乐意这样做。
0赞 Tim Biegeleisen 6/24/2023
您可以使用我个人资料中的链接给我买咖啡:stackoverflow.com/users/1863229/tim-biegeleisen
0赞 Richard Huxton 6/24/2023
你勤奋的谷歌搜索未能在官方文档中找到一整章。postgresql.org/docs/current/functions-matching.html