MySQL 正则表达式学习笔记

什么是正则表达式

正则表达式是一种用来匹配字符串的工具,它使用预定义模式来描述字符序列。MySQL 支持 POSIX 和 Perl 正则表达式。

基本元字符

在正则表达式中,有一些特殊字符称为“元字符”,它们有特殊的含义。下面是一些常用的元字符及其含义:

  • . 匹配任意单个字符
  • |
  • [] 匹配括号中任意一个字符
  • [^] 否定匹配,即匹配不在括号中的任意字符
  • * 匹配前面的字符出现 0 次或多次
  • + 匹配前面的字符出现 1 次或多次
  • ? 匹配前面的字符出现 0 次或 1 次
  • \ 转义字符

常用模式

匹配数字

可以使用 [0-9]\d 来匹配数字。例如,下面的正则表达式可以匹配任意长度的数字:

Copy Code
SELECT * FROM your_table WHERE your_column REGEXP '^[0-9]+$';

匹配邮箱地址

可以使用 ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 来匹配邮箱地址。例如:

Copy Code
SELECT * FROM your_table WHERE your_column REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';

匹配 URL

可以使用 (ftp|https?)://[^\s/$.?#].[^\s]* 来匹配 URL。例如:

Copy Code
SELECT * FROM your_table WHERE your_column REGEXP '(ftp|https?)://[^\s/$.?#].[^\s]*';

总结

MySQL 正则表达式是一个强大的工具,它可以帮助我们在数据库中进行更灵活、高效的数据操作。本文介绍了正则表达式的基础知识和常用模式,希望能对读者有所帮助。