MySQL 正则表达式详细说明以及案例
2025-03-06
9
MySQL 支持正则表达式(REGEXP)用于模式匹配。以下是常用的正则表达式元字符及其说明:
.
:匹配任意单个字符。^
:匹配字符串的开头。$
:匹配字符串的结尾。*
:匹配前面的子表达式零次或多次。+
:匹配前面的子表达式一次或多次。?
:匹配前面的子表达式零次或一次。{n}
:匹配前面的子表达式恰好 n 次。{n,}
:匹配前面的子表达式至少 n 次。{n,m}
:匹配前面的子表达式至少 n 次,至多 m 次。[]
:匹配括号内的任意一个字符。[^]
:匹配不在括号内的任意一个字符。|
:匹配两个或多个模式之一。()
:将模式分组。
案例
匹配以 "a" 开头的字符串:
SELECT * FROM table_name WHERE column_name REGEXP '^a';
匹配以 "a" 结尾的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'a$';
匹配包含 "abc" 的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'abc';
匹配包含 "a" 或 "b" 的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'a|b';
匹配包含 "a" 至少两次的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'a{2,}';
匹配包含 "a" 至多两次的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'a{0,2}';
匹配包含 "a" 或 "b" 或 "c" 的字符串:
SELECT * FROM table_name WHERE column_name REGEXP '[abc]';
匹配不包含 "a" 或 "b" 或 "c" 的字符串:
SELECT * FROM table_name WHERE column_name REGEXP '[^abc]';
匹配以 "a" 开头且以 "b" 结尾的字符串:
SELECT * FROM table_name WHERE column_name REGEXP '^a.*b$';
匹配包含 "a" 后跟任意两个字符的字符串:
SELECT * FROM table_name WHERE column_name REGEXP 'a..';
这些案例展示了如何使用 MySQL 的正则表达式进行模式匹配。
本篇文章内容来源于:MySQL 正则表达式详细说明以及案例
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。