文章目录
前言
是用某种模式去匹配一类字符串的一一个方式。例如,使用正则表达式可以查询出包含A、B和C其中任一字母的字符串。正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。正则表达式可以应用于非常复杂查询。
使用REGEXP
关键字来匹配查询正则表达式。
语法:
属性名 REGEXP '匹配方式'
“属性名”参数表示需要查询的字段的名称;
“匹配方式” 参数表示以哪种方式来进行匹配查询。
汇总表
模式 | 描述 |
---|---|
^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 |
$ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 |
. | 匹配字符串中的任意一个字符。 |
[…] | 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。 |
[^…] | 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。 |
p1|p2|p3 | 匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。‘(z|f)ood’ 则匹配 "zood"或 “food”。 |
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
{m} | m是一个非负整数。匹配确定的 m 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 "food"中的两个 o |
{m,n} | m 和 n 均为非负整数,其中m <= n。最少匹配m次且最多匹配 n次。 |
一、“^”
“^”查询以特定字符或者字符串开头的记录
二、“$”
“$”查询以特定字符或者字符串结尾的记录
三、“.”
“.”匹配字符串中的任意一个字符
四、“.”和“_”的区别
- 两个都可以代替任意一个字符进行查询。
- “.”只能用于regexp关键字进行匹配,不能用于like匹配
- “_”不能用于regexp关键字进行匹配,只能用于like匹配
五、‘[ ]’
[…]字符集合。匹配所包含的任意一个字符
[]可以指定集合的区间。如:[a-z],[1-9]
六、“[^字符集合]”
匹配指定字符以外的字符
七、匹配指定字符串
正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用符号“ | ”隔开。只要匹配这些字符串中的任意一个即可。
八、“*”和“+”
匹配多个字符,*和+都可以匹配多个该符号之前的字符。
- “+”:至少表示1个字符
- “*”:可以表示0个字符
九、‘{m}’或者’{m,n}’来指定字符串连续出现的次数
- {m}:m是一个非负整数。匹配确定的 m 次。
- {m,n}:m 和 n 均为非负整数,其中m <= n。