DQL~MySQL正则表达式

1.介绍

MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

2.格式

模式 描述
^ 匹配输入字符串的开始位置。
$ 匹配输入字符串的结束位置。
. 匹配除 “\n” 之外的任何单个字符。
[…] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
[^…] 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。
p1|p2|p3 匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。‘(z|f)ood’ 则匹配 “zood” 或 “food”。
***** 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

3.实例

-- ^ 在字符串开始处进行匹配
SELECT  'abc' REGEXP '^a';
-- $ 在字符串末尾开始匹配
SELECT  'abc' REGEXP 'a$';
SELECT  'abc' REGEXP 'c$';
-- . 匹配任意字符
SELECT  'abc' REGEXP '.b';
SELECT  'abc' REGEXP '.c';
SELECT  'abc' REGEXP 'a.';
-- [...] 匹配括号内的任意单个字符
SELECT  'abc' REGEXP '[xyz]';
SELECT  'abc' REGEXP '[xaz]';
-- [^...] 注意^符合只有在[]内才是取反的意思,在别的地方都是表示开始处匹配
SELECT  'a' REGEXP '[^abc]';
SELECT  'x' REGEXP '[^abc]';
SELECT  'abc' REGEXP '[^a]';
-- a* 匹配0个或多个a,包括空字符串。 可以作为占位符使用.有没有指定字符都可以匹配到数据
SELECT 'stab' REGEXP '.ta*b';
SELECT 'stb' REGEXP '.ta*b';
SELECT '' REGEXP 'a*';
-- a+  匹配1个或者多个a,但是不包括空字符
SELECT 'stab' REGEXP '.ta+b';
SELECT 'stb' REGEXP '.ta+b';
-- a?  匹配0个或者1个a
SELECT 'stb' REGEXP '.ta?b';
SELECT 'stab' REGEXP '.ta?b';
SELECT 'staab' REGEXP '.ta?b';
-- a1|a2  匹配a1或者a2,
SELECT 'a' REGEXP 'a|b';
SELECT 'b' REGEXP 'a|b';
SELECT 'b' REGEXP '^(a|b)';
SELECT 'a' REGEXP '^(a|b)';
SELECT 'c' REGEXP '^(a|b)';
-- a{m} 匹配m个a
SELECT 'auuuuc' REGEXP 'au{4}c';
SELECT 'auuuuc' REGEXP 'au{3}c';
-- a{m,n} 匹配m到n个a,包含m和n
SELECT 'auuuuc' REGEXP 'au{3,5}c';
SELECT 'auuuuc' REGEXP 'au{4,5}c';
SELECT 'auuuuc' REGEXP 'au{5,10}c';
-- (abc) abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号适合上面的所有情况。
SELECT 'xababy' REGEXP 'x(abab)y';
SELECT 'xababy' REGEXP 'x(ab)*y';
SELECT 'xababy' REGEXP 'x(ab){1,2}y';

相关推荐

  1. 表达式

    2024-01-03 12:48:01       40 阅读
  2. 表达式

    2024-01-03 12:48:01       49 阅读
  3. 表达式

    2024-01-03 12:48:01       49 阅读
  4. 【Python】表达式

    2024-01-03 12:48:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-03 12:48:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-03 12:48:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-03 12:48:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-03 12:48:01       20 阅读

热门阅读

  1. 数据结构OJ实验10-图连通与生成树

    2024-01-03 12:48:01       23 阅读
  2. react基础学习 附加todo实现代码

    2024-01-03 12:48:01       35 阅读
  3. C++ 基础入门篇3.1:算数运算符

    2024-01-03 12:48:01       42 阅读
  4. MockServer简单使用记录

    2024-01-03 12:48:01       35 阅读
  5. python flask-wft

    2024-01-03 12:48:01       43 阅读
  6. 传统企业该怎样让 OKR 落地?

    2024-01-03 12:48:01       28 阅读
  7. LeetCode //C - 1657. Determine if Two Strings Are Close

    2024-01-03 12:48:01       35 阅读
  8. QT 高DPI解决方案

    2024-01-03 12:48:01       42 阅读
  9. 分布式(4)

    2024-01-03 12:48:01       33 阅读
  10. 分布式(3)

    2024-01-03 12:48:01       39 阅读
  11. 安卓作业001 - 显示学生信息

    2024-01-03 12:48:01       36 阅读
  12. 单片机相关知识点

    2024-01-03 12:48:01       38 阅读
  13. 提升开发效率,程序员都在使用的免费api

    2024-01-03 12:48:01       42 阅读