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次