Adm*_*Bee 17
由于您的标签指示“正则表达式”,我假设您指的是 POSIX 字符类[:blank:]
和[:space:]
.
此概览表显示它[:blank:]
是 的子集[:space:]
:
[:space:]
包含通常指定为“空白字符”的所有内容,即“空格”(\x20
按“空格”栏时生成的字符)、水平制表符、垂直制表符、换页符等。[:blank:]
仅包含在同一行内产生“空白”的字符,即“空格”和水平制表符\t
。(*)是的,在计算机输入的上下文中,所有这些都是字符,因此在设计正则表达式时也应将其视为字符。
更新 这是一个类似的讨论。
(*) 注意:正如 Stéphane Chazelaz 所指出的,基于 BSD 的实现[:blank:]
也可以包含垂直制表和换页。
ter*_*don 16
在这种情况下,没有“空白”这样的东西。您所拥有的只是字符,而有些字符实际上不会在普通文本中打印出您可以看到的任何内容。然而,一切都是用字符来表达的,是的。ASCII 中有很多非打印字符,您可以在此处找到完整列表:https : //web.itu.edu.tr/sgunduz/courses/mikroisl/ascii.html。您可能在文本文件中遇到的是各种空白字符,它们是:
\t
\n
\r
而且,不太常见的是:
\a
\b
\v
\f
您还有 NULL ( \0
),它是非打印的但不会出现在文本文件中,以及特殊的转义符( \e
or ^[
) 和 Control-Z ( ^Z
) 字符,但同样在文本文件中没有真正找到。
相关链接
因此,“空白”可以是空格或制表符或其他空白字符。或者,如果您使用的是 Unicode 而不是 ASCII,那么您还会遇到各种其他奇怪的事情。但无论你拥有什么,它们都将是角色。当您在文本中看到空格时,计算机会看到一些字符。“空白”绝不是没有字符,它总是存在非打印字符。