MySQL 的正则表达式 MySQL 的正则表达式是 SQL 语言的一个子集,能够匹配基本的字符、字符串。以下是 MySQL 正则表达式的相关知识点: 1. 基本匹配:REGEXP 可以匹配基本的字符、字符串。例如:select * from wp_posts where post_name REGEXP 'hello',可以检索出列 post_name 中所有包含 hello 的行。 2. 特殊字符:. 是正则表达式中一个特殊的字符。它表示匹配一个字符,因此,dog,hog,mog 等等都能匹配。 3. 与 LIKE 的区别:LIKE 匹配整个列。如果被匹配的文本仅在列值中出现,LIKE 并不会找到它,相应的行也不会返回(当然,使用通配符除外)。而 REGEXP 在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP 将会找到它,相应的行将被返回。这时一个非常重要的差别(当然,如果适应定位符号^和$,可以实现 REGEXP 匹配整个列而不是列的子集)。 4. 大小写的区分:MySQL 中正则表达式匹配(从版本 3.23.4 后)不区分大小写。如果要区分大小写,应该使用 BINARY 关键字,如 where post_name REGEXP BINARY 'Hello .000'。 5. OR 匹配:为了搜索两个串之一,使用 |,如,select * from products where pro_id REGEXP '1000|2000' ORDER BY pro_id; 这样就 1000 和 2000 都能匹配并返回,当然,使用多个 | 就可以匹配多个串。 6. 匹配几个字符:[] 例如,这样将要匹配[0123456789]可以匹配 0 到 9,[1-4][4-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意字母字符。 7. 转义特殊字符:\ 能够匹配. \\f 换页 \\n 换行 \\r 回车 \\t 制表 \\纵向制表注意:为了匹配\本身,需要使用\\。 8. 匹配字符类:[:alnum:] 任意字母和数字(通[a-zA-Z0-9])[:alpha:] 任意字符(同[a-zA-Z]) [:blank:] 空格和制表符(同[\\t]) [:digit:] 任意数字(同[0-9]) [:lower:] 任意小写字母 [:upper:] 任意大写字母 [:space:] 包括空格在内的任意空白字符。 9. 匹配多个实例:关于重复元字符 * 0 个或者多个匹配 + 1 个或者多个匹配(等于{1,})? 1 个或者多个匹配(等于{0,1}) {n} 指定数目的匹配 {n,} 不少于指定数目的匹配 {n,m} 匹配数目的范围(m 不超过 255)。例如:select prod_name from products where prod_name REGEXP '[[:DIGIT:]]{4}',匹配任意 4 位数字。 10. 定位符:^ 文本的开始 & 文本的结尾 [[:<:]] 词的开始 [[:>:]] 词的结尾。通过使用这些定位符,能够使 REGEXP 起类似 LIKE 的作用。
- 粉丝: 1
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助