Mysql 正则表达式检索任何字符串类型(字母表或非字母表)之间超过 6 位数字的字符串

标签 mysql regex

我只需要检索那些匹配特定模式的数据行,例如:

asdasdasd123456@gmail.com

genuineemail90867889@yahoo.com

需要在 MYSQL 中检索具有模式 {all_string}{digits_morethen_6}{all_strings} 的字符串,任何人都可以帮助我使用正确的正则表达式在 sql 脚本中实现

最佳答案

WHERE col REGEXP '[0-9]{7}'

在字符串中的任意位置查找 7 位数字(多于 6 位)。

如果你需要前后的部分都非空,那么:

WHERE col REGEXP '[^0-9][0-9]{7,}[^0-9]'

这将查找至少 7 位数字,前后为非数字。

编辑

示例(第二个 REGEXP):

mysql> SELECT 'asdf2345zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]';
+-----------------------------------------------+
| 'asdf2345zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]' |
+-----------------------------------------------+
|                                             0 |
+-----------------------------------------------+

mysql> SELECT 'asdf2344444445zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]';
+-----------------------------------------------------+
| 'asdf2344444445zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]' |
+-----------------------------------------------------+
|                                                   1 |
+-----------------------------------------------------+

关于Mysql 正则表达式检索任何字符串类型(字母表或非字母表)之间超过 6 位数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29383276/

相关文章:

javascript - 用于验证 AS 编号的正则表达式

mysql - 用于 PostGres 的 UUID SHORT()

php - 将表行拆分为列

php从json向mysql插入数据运行速度太慢

regex - 雷博尔能做到吗?

regex - 我想修改这个正则表达式以包含撇号

mysql - 无法与 MacOS 上运行的 MySQL 建立连接

小于 N 天的值的 PHP/Sql 查询

php - 任何更快、更简单的 php preg_match 替代品

regex - 基于正则表达式在 Perl 中的 foreach 中制作数组的动态哈希