美文网首页
使用正则表达式进行搜索

使用正则表达式进行搜索

作者: 骑着白龙马的猪八戒 | 来源:发表于2019-08-05 10:17 被阅读0次

正则表达式用来匹配文本的特殊字符集合   不区分大小写

这是使用的   .

区别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\\.]  这里只在.或者任意数字为串中第一个字符时才匹配

相关文章

网友评论

      本文标题:使用正则表达式进行搜索

      本文链接:https://www.haomeiwen.com/subject/smihrctx.html