标签:实用 通配 种类型 模式匹配 binary 测试 正则表达 指定 效果
林员外 数据库杂货铺 6月16日查出以fy结尾的名字:
查出包含字母w的名字:
查找正好包含五个字符的名字,使用5个_模式字符进行匹配:
MySQL提供的另一种模式匹配使用扩展正则表达式。测试这种类型的模式是否匹配时,请使用REGEXP_LIKE()函数(或REGEXP或RLIKE运算符,它们是REGEXP_LIKE()的同义词)。
下面列出了扩展正则表达式的一些特性:
. 匹配任何单个字符。
字符类[…]匹配括号内的任何字符。例如,[abc]匹配a、b或c。若要定义字符范围,请使用短划线。[a-z]匹配任意字母,而[0-9]匹配任意数字。
匹配它前面事物的零个或多个实例。例如,x匹配任意数量的x个字符,[0-9]匹配任意数量的数字,.匹配任意数量的任何字符。
如果模式与测试值中的任何位置匹配,则正则表达式模式匹配将成功。(这与LIKE模式匹配不同,LIKE模式匹配仅在模式与整个值匹配时才成功。)
要锚定一个模式,使其必须与正在测试的值的开头或结尾匹配,请在模式的开头使用^或结尾使用$。
为了演示扩展正则表达式是如何工作的,这里将使用REGEXP_LIKE()重写前面显示的LIKE查询。
查找以b开头的名字,用^匹配名字的开始:
若要强制正则表达式比较区分大小写,请使用区分大小写的字符序(collation),或使用BINARY关键字使其中一个字符串成为二进制字符串,或指定c 匹配控制字符。以下每个查询只匹配小写b开头的名字:
要查找以fy结尾的名称,请使用$匹配名称的结尾:
要查找包含w的名称,请使用以下查询:
正则表达式模式会匹配值中的任何地方,所以这个查询中不必在模式的任何一边放置通配符,以使它与整个值匹配,这和SQL模式效果是一样的。
若要查找正好包含五个字符的名称,请使用“^”和“$”匹配名称的开头和结尾以及两者之间的五个.:
还可以使用{n}(“重复n次”)运算符编写上一个查询:
标签:实用 通配 种类型 模式匹配 binary 测试 正则表达 指定 效果
原文地址:https://blog.51cto.com/15023289/2561185