接着昨天的内容继续叨叨:
1:匹配特殊字符.
正则表达式语言由具有特定含义的特殊字符组成。例如我们已经看到过的' . ',' - ',' [ ] ',' | '等字符。那么,如果我们想匹配这些特殊字符,怎么搞?
首先,看下即将要用到的数据库中的表列数值:
接下来,我们来查找包含' . '字符的值。试试你的第一印象(Maybe Not):
虽然达到了要求,但是存在很多的冗余项,这不算良好的检索结果。原因:.匹配任意字符,因此每个行都被检索出来。 为了达到目标,必须用 \\ 为前导。试试便知晓:
良好的检索结果。同样:\\-表示查找-, \\| 表示查找 |。或许能总结出一个规律:正则表达式内具有特殊意义的所有字符都必须用这种方式转义。
那么,为了匹配\字符,理所当然的使用\\\.不信你检验一下。
2:匹配具有特殊含义的字符.
例如换页,换行,回车等空白元字符。如下表:
先来看看'\n'字符的效果是什么样:
可以看到,显示的数据列在\n处都发生了换行,那如果不想换行,连'\n'转义字符一起SELECT掉,怎么搞?
用法同第一点相同。
3:\或\\.
多数正则表达式使用单个反斜杠转义特殊字符,以便能使用这些字符。但是Mysql为什么就一定要求两个反斜杠?
其实:Mysql自己解释一个,正则表达式库解释一个。最后提醒一点:/在Mysql中就是个普通字符,不存在转义。
小结:多加练习,定能熟练。