MySQL REGEXP alnum 匹配问题

标签 mysql regex

我有以下字符串-

I know what that’s like when an army is defeated.

此 MySQL 命令返回 1。

select "I know what that’s like when an army is defeated." REGEXP '[^[:punct:] A-Za-z0-9]'

但是,当我使用“alnum”而不是 [A-Za-z0-9] 时,它返回 0。

select "I know what that’s like when an army is defeated." REGEXP '[^[:punct:] [:alnum:]]'

谁能解释一下原因吗?

谢谢!

最佳答案

HEX(CONVERT(BINARY(CONVERT("?s"USING latin1)) USING utf8)) -> C3A2E282ACE284A273 -> (当utf8时)

CONVERT(BINARY(CONVERT("’s"USING latin1)) USING utf8) ->

那么您的 that's 带有一个有趣的撇号,可能来自 Microsoft Word?此外,它是“双重编码”的。

如果您的 REGEXP 尝试查找 8 位代码以进行进一步分析,请考虑:

HEX(col) RLIKE '^(..)*(0[012345678BCEF]|7F|[189ABCDEF].)'

然后,如果您想“修复”双重编码,请使用 see my blog 。如果您需要帮助挑选您需要的零件,请告诉我。

关于MySQL REGEXP alnum 匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414777/

相关文章:

javascript - jQuery 表单提交不会返回 false

regex - 我可以阻止我的捕获组被覆盖吗?

c - 正则表达式不正确 c

mysql - 如何加快mysql正则表达式查询速度

mysql - MyISAM还是InnoDB,为了数据安全,我应该选择哪个?

Mysql-获取从日期到日期之间的日期

php - 从带有空格和换行符的 MySQL 数据库回显?

jquery - 使用 MySql/Node js 创建通知服务器

php - 重新排序正则表达式匹配

sql - 如何用 • 替换单词但仅显示第一个和最后一个字符