MySQL中的正则表达式使用REGEXP关键字来指定匹配模式。常见的正则表达式符号包括:
.:匹配任意单个字符
^:匹配字符串的开始位置
$:匹配字符串的结束位置
*:匹配前面的字符或字符集出现零次或多次
+:匹配前面的字符或字符集出现一次或多次
?:匹配前面的字符或字符集出现零次或一次
[ ]:匹配方括号内的任意一个字符
[^ ]:匹配除方括号内的字符之外的任意一个字符
( ):分组和捕获匹配的子表达式
\d:匹配一个数字字符
\w:匹配一个字母数字字符(包括下划线)
\s:匹配一个空白字符(包括空格、制表符和换行符)
{n}:匹配前面的字符或字符集恰好出现n次
{n,}:匹配前面的字符或字符集出现n次或更多次
{n,m}:匹配前面的字符或字符集出现至少n次且最多m次
|:表示或操作,用于匹配多个模式中的任意一个
select factor_b from dev.apply_factor where factor_b regexp '4+';
select factor_b from dev.apply_factor where factor_b regexp '^a';
select factor_b from dev.apply_factor where factor_b regexp '[xyz]';
select factor_b from dev.apply_factor where factor_b regexp '\d';
select factor_b from dev.apply_factor where factor_b regexp '[v|z]';
select factor_b from dev.apply_factor where factor_b regexp '0{10,}';
mysql 8.0以上有的功能
查找所有包含“voice”的行
select * from dev.apply_factor where regexp_like(factor_b,'voice');
SELECT REGEXP_REPLACE('123 abc 456 def', '[a-z]+', '*') AS result;
这将把所有小写字母替换为星号。
SELECT REGEXP_substr('aaa123fafa', '[0-9]{3}') AS result;
匹配3位的数字