08_mysql正则表达式

正则表达式:被宽泛地定义为在输入文本中表示某种模式的字符序列。

一、REGEXP 与 模式 搭配使用

模式模式是什么匹配
^ 字符串开头
$ 字符串结尾
. 任意单个字符
[...] 方括号内列出的任意字符
[^...] 方括号内未列出的任意字符
p1|p2|p3 交替;匹配 p1、p2 或 p3 中的任意一个模式
* 零个或多个前导元素实例
+ 一个或多个前导元素实例
{n n 个前导元素实例
{m,n m 到 n 个前导元素实例
[A-Z] 任意大写字母
[a-z] 任意小写字母字母
[0-9] 任意数字(0 到 9)
[[:<:]] 单词开头
[[:>:]] 单词结尾
[:class:] 字符类,例如,使用 [:alpha:] 匹配字母表中的字母

  ①  带模式的正则表达式

    SELECT * FROM stu_tb WHERE name  REGEXP '^z'; -- 查找表中以z开头名字的记录

    image

    SELECT * FROM stu_tb WHERE name  REGEXP 'u$'; -- 查找表中以u结尾名字的记录

    image

二、正在表达式函数和运算符

  1、RLIKE 运算符 --用于使用模式(或正则表达式)在数据库中搜索数据。(RLIKE 运算符用于判断给定的正则表达式是否与表中的记录匹配。如果记录匹配,则返回 1,否则返回 0)

    ①RLIKE 与 模式

    SELECT * FROM stu_tb WHERE name RLIKE '^z'; --查找 表中所有名称以 'z' 开头的记录 

    image

    ② RLIKE 字符串匹配

      SELECT ‘where are you ok.’  RLIKE 'a'; --查询来检查某个模式是否存在于单个字符串中

    image

 

  2、REGEXP_INSTR () 函数用于将指定的模式与字符串或数据库表中的数据进行匹配。此函数返回与指定模式匹配的字符串子字符串的起始索引;如果没有匹配,则返回 0;如果字符串或模式为 NULL,则返回 NULL。此字符串的字符索引从 1 开始。

   REGEXP_INSTR(expr, pattern[, pos[, occurrence[, return_option[, match_type]]]])

  • expr: 执行搜索的字符串

  • pattern: 在字符串中搜索的模式

   SELECT REGEXP_INSTR('welcome to beijing', 'to') AS rest;

   image

 

  3、REGEXP_LIKE()函数 --用于搜索与指定模式匹配的字符串。如果该字符串与指定模式匹配,则此函数返回 1;如果不匹配,则返回 0;如果字符串或模式为 NULL,则返回 NULL。

   REGEXP_LIKE(expr, pattern[, match_type])

  • expr: 执行搜索的字符串

  • pattern: 在字符串中搜索的模式

  • match_type:(可选参数)指定如何执行匹配的字符串;包括区分大小写匹配 (c)、不区分大小写匹配 (i)、多行模式 (m)、匹配行终止符 (n) 和匹配仅限 Unix 的行尾 (u)。

  SELECT REGEXP_LIKE('welcome to beijing.', 'to')  AS res;

  image

 

  4、regexp_replace() 函数--用于查找并替换与特定模式匹配的字符串。如果匹配,则用另一个字符串替换该字符串。如果不匹配,则返回原始字符串。如果字符串或模式为 NULL,则返回 NULL。

  REGEXP_REPLACE(expr, pattern, repl[, pos[, occurrence[, match_type]]])

  • expr: 执行搜索的字符串

  • pattern: 在字符串中搜索的模式

  • repl: 替换字符串

   SELECT REGEXP_REPLACE('welcome to beijing', 'beijing', 'guangzhou') AS res;

  image

 

 

 

  

 

posted @ 2025-12-31 11:11  zbl1118  阅读(5)  评论(0)    收藏  举报