线性空白究竟是什么? (LWS / LWSP)

时间:2014-01-12 08:24:37

标签: character special-characters whitespace

我看到了这个术语的提及,以及CRLF,CR,LF,CTL(控制字符)和SP(空格)。

如果它不是常规的内联空格(),那么它是什么字符?

1 个答案:

答案 0 :(得分:35)

来自STD68 Augmented BNF for Syntax Specifications: ABNF

LWSP    =  *(WSP / CRLF WSP)  ; Use of this linear-white-space rule permits
                              ; lines containing only white space*
WSP     =  SP / HTAB          ; white space
CRLF    =  CR LF              ; Internet standard newline
SP      =  %x20               ; space
HTAB    =  %x09               ; horizontal tab
CR      =  %x0D               ; carriage return
LF      =  %x0A               ; linefeed

关于LWSP的评论在STD68(又名RFC5234)中已经从RFC2234和RFC4234发生了变化,现在提供了反对在新文档中使用此定义的建议。

简单英语:线性空白区域为:任意数量的空格或水平制表符,如果后面至少有一个空格或水平制表符,则为换行符(CRLF)。

线性空格的字符串示例:

  • [SP]
  • [HTAB]
  • [SP] [SP]
  • [HTAB] [HTAB]
  • [SP] [HTAB] [SP]
  • [SP] [CR] [LF] [SP]
  • [CR] [LF] [SP] [CR] [LF] [SP] [CR] [LF] [HTAB]
  • [SP] [CR] [LF] [CR] [LF] [SP] [CR] [LF] [SP] [CR] [LF] 这是 TWO 线性空格:[SP]和[SP] [CR] [LF] [SP]。只有在之前[SP]或[HTAB] 以及之后时才会包含[CR] [LF]。
  • [SP] [VTAB] [SP] 两个线性空格:[SP]和[SP],由垂直制表符分隔。
  • [SP] [CR] [LF] [CR] [LF] [CR] [LF] 只有第一个[SP]是线性空白区域。 CRLF后跟CRLF不属于规范

感谢Jukka K. Korpela提醒我检查已废弃的RFC,并感谢unwind澄清CRLF必须后跟空格或htab成为LWSP的一部分。