添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

中文标点无统一的编码范围,您可以在搜索引擎上搜索 中文标点符号 Unicode码 ,然后结合运算符来逐个排除。

例如句号(。)对应正则表达式为[\\x{3002}]。执行select * from values ('你好。'),('nihao!') t(d) where d rlike '[\\x{3002}]';返回结果为你好。。

说明 如果要匹配单引号,可以用unicode0027 ,对应正则表达式为 [\\x{0027}]。

由于系统采用反斜线 \ 作为转义符,因此正则表达式的模式中出现的 \ 都要进行二次转义。例如正则表达式要匹配字符串 a+b 。其中 + 是正则中的一个特殊字符,因此要用转义的方式表达,在正则引擎中的表达方式是 a\\+b 。由于系统还要解释一层转义,因此能够匹配该字符串的表达式是 a\\\+b

示例如下。
select 'a+b' rlike 'a\\\+b';
+------+
| _c1  |
+------+
|   1  |
+------+
极端的情况,如果要匹配字符 \ , 由于在正则引擎中 \ 是一个特殊字符,因此要表示为 \\ ,而系统还要对表达式进行一次转义,因此写成 \\\\
select 'a\\b', 'a\\b' rlike 'a\\\b';
+-----+------+
| _c0 | _c1  |
+-----+------+
| a\b |   0  |
+-----+------+
select 'a\\b', 'a\\b' rlike 'a\\\\b';
+-----+------+
| _c0 | _c1  |
+-----+------+
| a\b |   1  |
+-----+------+
说明 在MySQL中写 a\\b ,而在输出结果中显示 a\b ,同样是因为MySQL会对表达式进行转义。
如果字符串中有制表符TAB,系统在读入 \t 这两个字符时,已经将其存为一个字符,因此在正则的模式中它也是一个普通的字符。
select 'a\tb', 'a\tb' rlike 'a\tb';
+---------+------+
| _c0     | _c1  |
+---------+------+
| a     b |   1  |
+---------+------+