MySql对正则表达式的支持

来源:互联网 发布:万网域名控制面板登录 编辑:程序博客网 时间:2024/06/05 03:21
MySql对正则表达式的支持

MySQL中使用 REGEXP进行正则表达式匹配。

符号描述^匹配字符串的开始位置,例如:'^abc',表示匹配字符串是否以abc开头。$匹配字符串的结束位置,例如:'abc$',表示匹配字符串是否以abc结尾。.匹配任何单个字符,但不可以匹配'\n',如果需要匹配包括'\n'在内的任何字符,需要使用'[.\n]'。[...] 匹配'[]'中包含的任意一个字符,例如:'[abc]'可以匹配 'a'或'b'或'c'。[^...]匹配未包含的任意字符,例如: '[^abc]' 可以匹配除abc以外的任何字符。(...)匹配'()'中的所有字符,例如:'(abc)'可以匹配'abcdefg',但是不可以匹配'a','ab'。(^...)匹配未包含在'()'中的所有字符,例如:'(^abc)'可以匹配'abdefg','bcdefg',但是不可以匹配
'abcdefg'。
a|b|c匹配'a'或'b'或'c',例如:'f|good'可以匹配 'f'或 'good',但是'(f|g)ood'则匹配 'food'或 'good'。*匹配表达式0~n次,例如:'go*'可以匹配 'g','go','goo'。+ 匹配表达式1~n次,例如:'go+'可以匹配 'go','goo',但不可以匹配 'g'。{n}匹配表达式n次。{n,m}匹配表达式最少匹配 n次且最多匹配 m次。


使用示例:
# 先创建一个表create table user(    id int,    name varchar(50));# 插入几条数据insert into user values(1, 'Jake');insert into user values(2, 'Kimi');insert into user values(3, 'Tom');insert into user values(4, 'Joth');


mysql> # 查找name字段中以'J'为开头的所有数据mysql> select * from user where name REGEXP '^J';+------+------+| id   | name |+------+------+|    1 | Jake ||    4 | Joth |+------+------+2 rows in set (0.00 sec)mysql> # 查找name字段中以'h'为结尾的所有数据mysql> select * from user where name REGEXP 'h$';+------+------+| id   | name |+------+------+|    4 | Joth |+------+------+1 row in set (0.00 sec)mysql> # 查找name字段中包含'o'的所有数据mysql> select * from user where name REGEXP 'o';+------+------+| id   | name |+------+------+|    3 | Tom  ||    4 | Joth |+------+------+2 rows in set (0.00 sec)mysql> # 查找name字段中以'J'开头或以'm'结尾的所有数据mysql> select * from user where name REGEXP '^J|m$';+------+------+| id   | name |+------+------+|    1 | Jake ||    3 | Tom  ||    4 | Joth |+------+------+3 rows in set (0.00 sec)


0 0
原创粉丝点击