REGEXP_LIKE()

函数说明

REGEXP_LIKE() 用于判断指定的字符串是否与提供的正则表达式模式匹配。如果字符串符合模式,函数返回 TRUE,否则返回 FALSE。它的工作方式类似于 REGEXP 操作符,但是它可以接受第三个可选参数 match_type,用于定义匹配的行为。

REGEXP 和 RLIKE 是 REGEXP_LIKE() 的同义词。

语法

  1. > REGEXP_LIKE(expr, pat[, match_type])

参数释义

  • expr 是要搜索的字符串。

  • pat 是要在字符串中查找的正则表达式。

  • match_type 参数是一个可选的字符串,用于指定匹配的方式。这个参数可以由以下字符构成,每个字符指定一种匹配方式,字符的顺序不影响结果:

    • 'c':区分大小写进行匹配(即,大写和小写字母被视为不同的字符)。默认情况下,匹配区分大小写。
    • 'i':不区分大小写进行匹配(即,大写和小写字母被视为相同的字符)。
    • 'n':允许 . 符号匹配换行符。默认情况下,. 符号不会匹配换行符。
    • 'm':将字符串视为多行。即,^ 匹配字符串的开头或任何行的开头,$ 匹配字符串的结尾或任何行的结尾。默认情况下,^ 只匹配字符串的开头,$ 只匹配字符串的结尾。
    • 'u':将模式视为 UTF-8 字符串。默认情况下,模式视为字节字符串。

示例

  1. mysql> SELECT REGEXP_INSTR('Hello, my number is 12345.', '[0-9]+');
  2. +--------------------------------------------------+
  3. | regexp_instr(Hello, my number is 12345., [0-9]+) |
  4. +--------------------------------------------------+
  5. | 21 |
  6. +--------------------------------------------------+
  7. 1 row in set (0.00 sec)
  8. mysql> SELECT REGEXP_INSTR('apple', 'z+');
  9. +-------------------------+
  10. | regexp_instr(apple, z+) |
  11. +-------------------------+
  12. | 0 |
  13. +-------------------------+
  14. 1 row in set (0.00 sec)
  15. mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE');
  16. +-----------------------------------+
  17. | regexp_like(CamelCase, CAMELCASE) |
  18. +-----------------------------------+
  19. | false |
  20. +-----------------------------------+
  21. 1 row in set (0.01 sec)
  22. mysql> SELECT REGEXP_LIKE('CamelCase', 'CAMELCASE', 'i');
  23. +--------------------------------------+
  24. | regexp_like(CamelCase, CAMELCASE, i) |
  25. +--------------------------------------+
  26. | true |
  27. +--------------------------------------+
  28. 1 row in set (0.01 sec)