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

FuR*_*001 5 regular-expression

空格和空格有区别吗?

制表符、空格、空格是否被视为字符?

Adm*_*Bee 17

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

此概览表显示它[:blank:]是 的子集[:space:]

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

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

更新 是一个类似的讨论。

(*) 注意:正如 Stéphane Chazelaz 所指出的,基于 BSD 的实现[:blank:]也可以包含垂直制表和换页。

  • 是的,你是对的,我开始学习正则表达式。感谢您的解释和链接,它对我帮助很大! (2认同)

ter*_*don 16

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

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

而且,不太常见的是:

  • 钟: \a
  • 退格: \b
  • 垂直标签: \v
  • 表单馈送: \f

您还有 NULL ( \0),它是非打印的但不会出现在文本文件中,以及特殊的转义符( \eor ^[) 和 Control-Z ( ^Z) 字符,但同样在文本文件中没有真正找到。

相关链接


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