MySQL利用REGEXP命令提供给用户扩展的正则表达式功能,REGEXP实现的功能类似UNIX上的GREP和SED的功能,并且REGEXP在进行模式匹配时是区分大小写的。熟悉并掌握REGEXP的功能可以使模式匹配工作事半功倍。
正则表达式的模式说明
^ 在字符串的开始处进行匹配
$ 在字符串的末尾处进行匹配
. 匹配任意单个字符,包括换行符
[…] 匹配出括号内的任意字符
[^…] 匹配不出括号内的任意字符
a* 匹配零个或多个a(包括空串)
a+ 匹配1个或多个a(包括空串)
a? 匹配零个或1个a(包括空串)
a1|a2 匹配a1或a2
a(m) 匹配m个a
a(m,) 匹配m个或更多个a
a(m,n) 匹配m到n个a
a(,n) 匹配0到n个a
(…) 将模式元素组成单一元素举例
- “^”在字符串的开始处进行匹配,返回结果为1表示匹配,返回结果为0表示不匹配,下例中尝试匹配字符串”abcdefg”是否以字符”a”开始。
2. “$”在字符串的末尾进行匹配,下例中尝试匹配字符串”abcdefg”是否以字符”g”结束。
3. “.”匹配任意字符,包括换行符。下例中字符串”abcdefg”尝试匹配单字符”h”和”f”.
4. “[…]”匹配出括号内的任意字符。下例中字符串”abcdefg”尝试匹配”fhk”中的任意一个字符,如果有一个字符能匹配上,则返回1.
5. [^…]匹配不出括号内的任意字符。下例中字符串”efg”和”X”中如果有任何一个字符匹配不上”[XYZ]”中的任意一个字符,则返回0,如果全能匹配上则返回1.