正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身是一个字符串,使用这个字符串来描述、用来定义规则,匹配一系列符合某个句法规则的字符串。
在开发中,正则表达式通常用来检索,替换那些符合某个规则的文本。
MySQL使用REGEXP关键字支持正则表达式进行字符串匹配。
模式 | 描述 |
---|---|
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置 |
. | 匹配除\n之外的任何单个字符 |
[…] | 字符集合。匹配所包含的任意一个字符,例如:[‘abc’]可以匹配"plain"中的a |
[^…] | 负值字符集合。匹配未包含的任意字符。例如:[‘abc’]可以匹配"plain"中的p |
p1|p2|p3 | 匹配p1或者p2或p3。例如:'z|food’能匹配"z"或者"food"。"(z|f)ood"匹配"zood"或者"food" |
* | 匹配前面的子表达式零次或者多次。例如:zo*能匹配"z"以及zoo。 |
+ | 匹配前面的子表达式一次或者多次 |
{n} | n是一个非负整数,匹配确定的n次 |
{n,m} | m和n均为非负整数,其中n <= m。最少匹配n次且最多匹配m次 |
-- ^ 开头 搜索商品表中名称以海开头的商品 select * from product where pname REGEXP '^海'; -- . 匹配任意单个字符 select 'abc' REGEXP '.b';