正则表达式用来匹配文本的特殊字符集合 不区分大小写
这是使用的 .
区别like与regexp
select prod_name from products where prod_name like '1000' order by prod_name;
LIKE匹配整个列,如果被匹配字符在列值中出现,LIKE找不到它,相应的行也匹配不到
select prod_name from products where prod_name regexp '1000' order by prod_name;
而regexp则是在列中匹配,如果被匹配的文本在列中找到,regexp就会找到它并返回相应的行
正则表达式中的or
匹配多个字符之一 [] 另一种or语句形式
select prod_name from products where prod_name regexp '[123] Ton' order by prod_name;
select prod_name from products where prod_name regexp '[^123] Ton' order by prod_name;
匹配范围:
select prod_name from products where prod_name regexp '[1-5] Ton' order by prod_name;
匹配特殊字符 必须使用\\为前导 \\.表示找. \\-表示找-
select vend_name from vendors where vend_name regexp '\\.' order by vend_name;
匹配多个实例:
select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)' order by prod_name;
这里sticks?中s?表示s可有可无 既是?前的字符可以出现0或者1次
select prod_name from products where prod_name regexp '[[:digit:]]{4}' order by prod_name;
[[:digit:]]{4} == [0-9][0-9][0-9][0-9] 匹配连在一起的任意4位数字
定位符 ^ $ [[:<:]] [[:>:]]
select prod_name from products where prod_name regexp '^[0-9\\.]' order by prod_name;
^[0-9\\.] 这里只在.或者任意数字为串中第一个字符时才匹配
网友评论