SELECT prod_name FROM products WHERE prod_name REGEXP '\\([0-9] sticks?\\)';
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:digit:]]{4}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9]{4}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9][0-9][0-9][0-9]';
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:upper:]]{2}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:lower:]]{4}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:alpha:]]{7}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:alnum:]]{7}';
SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\\.]';
SELECT Concat(vend_name,' (',vend_country,')') FROM vendors ORDER BY vend_name;
SELECT Concat(RTrim(vend_name),' (',RTrim(vend_country),')') FROM vendors ORDER BY vend_name;
正则表达式中的字符类
[:digit:]:任意数字,同[0-9]
[:lower:]: 任意小写字母,同[a-z]
[:upper:]:任意大写字母,同[A-Z]
[:alnum:]:任意大小写字母和数字,同[a-zA-Z0-9]
[:alpha:]:任意大小写字母,同[a-zA-Z]
正则表达式中的重复元字符
*:o个或多个匹配
+:1个或多个匹配
?:0个或1个匹配
{n}:指定数目的匹配
{n}:不少于指定数目的匹配
{n,m}:匹配数目的范围
正则表达式中的定位符
^:文本的开始
$:文本的结束
WHERE prod_name REGEXP '\\([0-9] sticks?\\)';
\\(:'(' 的转义
\\):')'的转义
sticks?:'s'出现0次或1次
'?'匹配它前面的任意字符出现0次或1次
SELECT prod_name FROM products WHERE prod_name REGEXP '\\([0-9] sticks?\\)';
搜索结果如下:
prod_name |
TNT (1 stick) |
TNT(2 sticks) |
SELECT prod_name FROM products WHERE prod_name REGEXP '[[:digit:]]{4}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9]{4}';
SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9][0-9][0-9][0-9]';
搜索的结果为:
prod_name |
JetPack 1000 |
JetPack 2000 |
SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\\.]';
以数字和小数点为开头的字符串
搜索结果为:
prod_name |
.5 ton anvil |
1 ton anvil |
2 ton anvil |