MySQL REGEXP正则

[1517. 查找拥有有效邮箱的用户](https://leetcode.cn/problems/find-users-with-valid-e-mails/description/)因为做到这题再好好学一下正则表达式

REGEXP

正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。

一般用法:

select * from table where column regexp '正则表达式'

^

匹配文本开始的字符,'^[a-zA-Z]'表示以字母开头的字符串

$

匹配文本结束的字符,'$com' 表示以com为结尾的字符串

.

匹配任意单个字符串

ps:所以匹配'.com'的时候不可以直接 .com,因为这样的意思是匹配任意字符加上com

*

匹配零个或多个在它之前的字符。'f*n',可以匹配到n、fn、ffn、abcn、fan等等。

注:f*n之所以能匹配到fan是因为f是*修饰的,这里匹配到了0个f然后加上n,所以等价于 'n',所以匹配到了fan。

+

类似 * ,匹配1个或多个在它之前的字符。'f+n',可以匹配到fn、fn、ffn等等。

注:'fn'必须存在

?

匹配0个或1个在它之前的字符。

<字符串>

匹配包含指定字符串的文本。必须完整包含!

[字符集合]

匹配字符集合中的任意一个字符。

'[a-zA-Z0-9]'的意思是匹配到字母或数字。

:如果要在 []里匹配'-',要么放在最后面,要么在前面加双反斜杠' \\',其他的元符号也最好使用双反斜杠。

[^]

匹配不在括号中的任意字符

'[^abc]'可以匹配到desk\phone\pig等等

字符串{n,}

匹配到前面的字符串至少n次

字符串{n,m}

匹配到前面的字符串至少n次,至多m次


Comment