c++ - 在 unix 中查找 ^@ 字符?

标签 c++ regex unix hex character

我正在编写一个 C++ 程序,我正在读取在很多单词之间包含 ^@ 的文件信息。这是什么角色?我猜这是十六进制值的某种表达,但是是哪一个?匹配它的正则表达式是什么?对不起,如果这是重复的,我尝试搜索这个但没有搜索引擎接受这些字符。

我是正则表达式的新手,所以我不知道自己在做什么。会是这样吗?

^.*\^@*.*$

最佳答案

^@ 是空字节(字符代码 00)的表示。在正则表达式中,它通常表示为 \0\x00

背景详情:

^@ 是在键入 @ 的同时按住 Control 得到的字符。传统上,按住 Control 会通过清除高三位来修改字符代码(将字符放入 0x00–0x1F 范围);因此,G (0x47) 变成字符 BEL (0x07),@ (0x40) 变成 NUL (0x00)。

关于c++ - 在 unix 中查找 ^@ 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870403/

相关文章:

c++ - 我如何使用 std::rotate 来旋转第一个成员为 const 的对数组?

linux - 强制程序将文件内容刷新到磁盘

c - 线程名称超过 15 个字符?

c++ - 您如何试用小型/简单的 C 或 C++ 源代码?

c++ - 同一父类(super class)的两个类之间的相互更新

c++ - regex_search 只选择匹配的最大子串。还要在 regex_search 中键入不匹配

java - 正则表达式包含和排除转义序列

c++ - <regex> VS10 中文件名的正则表达式格式有什么问题?

shell - Unix命令创建目录并进入

c++ - 无法在程序中获得正确的输出