REGEXP在列值内进行匹配,只要被匹配的文本在列值中出现,相应行就能被返回,但是like只能匹配整个列
1.1 or匹配
| 为正则表达式的OR操作符,表示匹配其中之一
e.g.
select prod_name from products
where prod_name REGEXP '1000|2000'
1.2匹配几个字符之一
[] 是另外一种形式的OR语句,[123]匹配字符1、2、3
1.3匹配范围
- 用来定义一个范围 [0-9] 匹配数字0到9;[a-z]匹配26个小写字母
1.4匹配特殊字符
. [] | - 都是特殊字符,为了匹配这些特殊字符,要用\为前导,\-表示查找-,\.表示查找.,\表示匹配
\也用来引用元字符(具有特殊意义的字符)
e.g.元字符
\f 换页
\n 换行
\r 回车
\t 制表
\v 纵向制表
1.5匹配字符类
字符类
[:alnum:] 任意字母和数字,同[a-zA-Z0-9]
[:alpha:] 任意字符,同[a-zA-Z]
[:blank:] 空格和制表,同[\t]
[:cntrl:] ASCII控制字符,ASCII 0到31和127
[:digit:] 任意数字
[:graph:] 与[:print:]相同,但不包含空格
[:lower:] 任意小写字母
[:print:] 任意可打印字符
[:punct:] 既不在[:alnum:]也不在[:cntrl:]中的任意字符
[:space:] 包括空格在内的任意空白字符
[:upper:] 任意大写字符
[:xdigit:] 任意十六进制数字
7.6匹配多个实例
重复元字符
* 0或多个匹配
+ 1个或多个匹配,等于{1,}
? 0个或1个匹配,等于{0,1}
{n} 指定数目的匹配
{n,} 不少于指定数目的匹配
{n,m} 匹配数目的范围,m不超过255
7.7定位符
定位元字符
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结束