mysql - 我如何在 MYSQL 中基于十六进制代码进行 REGEXP 搜索?

标签 mysql regex

SELECT title FROM tags WHERE title REGEXP '[\x20]' 返回所有带 x、2 或 0 的东西; SELECT title FROM tags WHERE title REGEXP '\x20' 返回字面上为 x20 的所有内容

我的实际用例是我想搜索任何可能不小心包含了控制字符的标签。

最佳答案

可能有更好的方法来做到这一点,但这是我想出的:

SELECT title FROM tags WHERE title REGEXP CONCAT('[',CHAR(1),'-',CHAR(31),']')

请注意,这些是十进制字符值,而不是十六进制。我也想不出一种方法让它也找到 NULL 字节 (\x00)。

这是一个使用十六进制文字的替代方案:

SELECT title FROM tags WHERE title REGEXP CONCAT('[', x'01', '-', x'1F', ']')

关于mysql - 我如何在 MYSQL 中基于十六进制代码进行 REGEXP 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10306896/

相关文章:

java - 正则表达式查找具有唯一数字的数字

C++11 正则表达式与字符串不匹配

php - 为什么我的 mysqli_connect 没有连接?它说没有指定主机名

mysql - 在 Mac 上无法连接到 '127.0.0.1' (61) 上的 MySQL 服务器

php - 使用php查询mysql记录并转换为数组

javascript - 无法更换括号

python - 如何在 python 中使用正则表达式查找某些单词?

mysql - 如何在 MySQL 中删除具有 2 列作为复合主键的多行?

java - Hibernate 忽略序列生成器的初始值

Java 模式捕获词