MySQL作为关系型数据库的一种,起支持SQL进行数据库的增删改查操作是其必备功能之一!
SQL的查询功能中,碰到需要检索或替换那些符合某个模式的文本内容是最常见的应用场景,此时就需要用到正则表达式根据指定的匹配模式匹配文本中符合要求的特殊的字符。
我们可以先假设下面几个场景:
- 从一个文本中提取电话号码;
- 从一大串字符中查找重复字符;
- 进行文章审核时对敏感词进行替换操作。
【1】数据准备
- 建表:
- 造数据
【2】^:匹配文本的开始字符
【结论】以字母“l”开头的记录都能查询出来。
【3】$:匹配文本的结束字符
【结论】以字母“r”结尾的记录都能查询出来。
【4】.:匹配任意一个字符
【结论】两个字母之间必须要存在另外一个字符才能符合匹配条件。
【5】*:匹配任意多个字符
【结论】包含匹配条件中罗列出的某个字母的记录都被认为是符合的。
【6】+:匹配其前面字符至少一次
【结论】可以实现多个字母的匹配。
【7】包含某个或几个字符
【结论】使用LIKE则要结合%才能生效。
【8】[]:匹配字符集中任何一个字符
【结论】返回[]中所有字母的记录。
【9】[^]:匹配不包含在指定集合中的任何字符
【结论】对于ID值为1至5的记录都被剔除。
【10】指定匹配次数:{n,}或{n,m}
【结论】指定的字母必须连续出现,{n,m}中的m才生效。
总结
MySQL支持的正则表达式有: