空格、空格和制表符是字符串的一部分吗?

空格、空格和制表符是字符串的一部分吗?

空格和空白有区别吗?

制表符、空格、空格算作字符吗?

答案1

由于您的标签指示“正则表达式”,我假设您指的是 POSIX 字符类[:blank:][:space:].

本概述表显示[:blank:]是 的子集[:space:]

  • [:space:]\x20包含通常指定为“空白字符”的所有内容,即“空格”(按“空格”栏时生成的字符)、水平制表符、垂直制表符、换页符等。
  • [:blank:]仅包含那些产生“空白空间”的字符在同一行内,即“空格”和水平制表符\t。(*)

是的,在计算机输入的上下文中,所有这些都是字符,因此在设计正则表达式时也应该被视为字符。

更新 这里是一个类似的讨论。

(*) 注意:正如 Stéphane Chazelas 所指出的,有基于 BSD 的实现,其中[:blank:]还可以包含垂直制表和换页,请参见例如这里

答案2

在这种情况下,不存在“空白”这样的东西。您所拥有的只是字符,有些字符实际上不会打印出您在普通文本中可见的任何内容。不过,一切都是用人物来表达的,是的。 ASCII 中有相当多的非打印字符,您可以在此处找到完整列表:https://web.itu.edu.tr/sgunduz/courses/mikroisl/ascii.html。您在文本文件中可能会遇到的各种空白字符是:

  • 空间:
  • 标签:\t
  • 新队:\n
  • 回车:\r

并且,不太常见的是:

  • 钟:\a
  • 退格键:\b
  • 垂直选项卡:\v
  • 换页:\f

您还可以使用非打印但不会出现在文本文件中的 NULL ( \0) 字符,以及特殊的转义字符 (\e^[) 和 Control-Z ( ^Z) 字符,但同样在文本文件中并未真正找到。

相关链接


因此,“空白”可以是空格、制表符或其他空白字符。或者,如果您使用的是 Unicode 而不是 ASCII,您还会遇到各种其他奇怪的事情。但无论你拥有什么,它们都将是角色。当您在文本中看到空格时,计算机会看到一些字符。 “空白”绝不是字符的缺失,它始终是非打印字符的存在。

答案3

https://en.wikipedia.org/wiki/Whitespace_character

在计算机编程中,空白是在排版中表示水平或垂直空间的任何字符或字符系列

我猜你指的是命令行用法:

在命令处理器处理的命令中,例如在脚本中并输入的命令中,空格字符可能会导致问题,因为它有两种可能的功能:作为命令或参数的一部分,或者作为参数或名称分隔符。可以通过禁止嵌入空格或在引号字符之间用嵌入空格括住名称来防止歧义。

空格作为参数分隔符:

command arg1 arg2

空格作为字符串的一部分(命令的单个参数):

command "arg with spaces"

答案4

是的,如果你强调空白,那么它就是NULL,否则空白和空格是相同的。而且空白、空格和制表符都是ASCII或Unicode系统定义的字符。空白[0x00]、空格[0x20]、制表符[0x09]

相关内容