mysql - REGEXP 不适用于字符名称

标签 mysql regex

根据 http://dev.mysql.com/doc/refman/5.1/en/regexp.html ,我可以使用 [.plus-sign.] 而不是 [.+.]

那么为什么下面两个查询在 MySql 5.6.17 中给我不同的结果:

select case when '+123' regexp '^[.+.][0-9]+$'
then 1
else 2
end;

(给出结果 1)

select case when '+123' regexp '^[.plus-sign.][0-9]+$'
then 1
else 2
end;

(给出结果 2)

如果按预期工作,使用角色名称会非常简洁。我做错了什么吗?

最佳答案

你需要像这样使用[[ character class ]]:

select '+123' regexp '^[[.plus-sign.]][0-9]+$';
1

关于mysql - REGEXP 不适用于字符名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720683/

相关文章:

java - 使用正则表达式设计捕获十六进制数或整数

mysql - 如何从父子关系的单个表中获取完整的家庭ID

mysql - 字段 'id' 没有默认值?

php - 在没有 group_concat 的情况下连接 symfony/doctrine/mysql 中的行

php - mysql不会插入5到10个用户同时提交的同一个php表单的所有数据

javascript - 如何获取 "add_"前面的字符

Java 使用关键字拆分字符串

Javascript正则表达式执行不匹配

mysql - SQL 查询以透视和组合行

java - 非阻塞匹配器查找