MySQL必知必会之5-9(二)

2014-11-24 13:59:11 · 作者: · 浏览: 4
前导。

\\-表示-

\\.表示.

\\\表示\

\\f表示换页

\\n表示换行

\\r表示回车

\\t表示制表

\\v表示纵向制表

9.2.6匹配字符类

[:alnum:] 任意字母和数字(同[a-zA-Z0-9])

[:alpha:] 任意字符(同[a-zA-Z])

[:blank:] 空格和制表符(同[\\t])

[:cntrl:] ASCII控制字符(ACII 0到31和127)

[:digit:] 任意数字(同[0-9])

[:graph:] 与[:print:]相同,但不包括空格

[:lower:] 任意小写字母

[:print:] 任意可打印字符

[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字符

[:space:] 包括空格在内的任意空白字符(同[\\f\\n\\r\\t\\v])

[:upper:] 任意大写字母(同[A-Z])

[:xdigit:] 任意十六进制数字(同[a-fA-F0-9])

9.2.6匹配多个实例

SELECT prod_name FROM products

WHERE prod_name REGEXP '\\([0-9] sticks \\)' ORDER BY prod_name;//结果如下

+----------------+

| prod_name |

+----------------+

| TNT (1 stick) |

| TNT (5 sticks) |

+----------------+

正则表达式\\([0-9]sticks \\)需要说明一下。\\(匹配(,[0-9]匹配任意数字(这个例子中为1和5),sticks 匹配stick和sticks(s后的?使s可选,因为?匹配它掐年的任何字符的0次或1次出现),\\)匹配)。

SELECT prod_name FROM products

WHERE prod_name REGEXP '[[:digit:]]{4}' ORDER BY prod_name;

+--------------+

| prod_name |

+--------------+

| JetPack 1000 |

| JetPack 2000 |

+--------------+

2 rows in set (0.00 sec)

[[:digit:]]{4}中{4}要求它前面的字符(任意数字)出现四次,所以[[:digit:]]{4}表示连在一起的任意4位数

9.2.8定位符

^ 文本的开始

$ 文本的结尾

[[:<:]] 词的开始

[[:>:]] 词的结尾

SELECT prod_name FROM products

WHERE prod_name REGEXP '^[0-9\\.]' ORDER BY prod_name;

^[0-9\\.]表示只在.或任意数字为串中第一个字符时才匹配它们。