RFC 3986 URI语法中*、/、(、[符号含义咨询
RFC 3986语法符号含义确认
你的所有猜测完全正确,这些符号是**ABNF(扩充巴科斯范式)的标准标记,RFC 3986在第2.3节(Syntax Notation)**里明确了这些符号的定义,同时遵循ABNF通用规范:
/:代表“或”,用来分隔多个可选的语法元素,比如ALPHA / DIGIT指元素可以是ASCII字母或数字():用于分组,把多个元素视为一个整体处理,确保符号作用范围正确*:表示前面的元素可出现0次或多次,比如*(ALPHA / DIGIT)指字母或数字可以重复任意次数(包括0次)[]:标记包裹的内容为可选部分,可出现0次或1次,比如[ "?" query ]指?query这部分可有可无
用你给出的示例验证:
- 针对
scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
实际含义是:scheme必须以一个ASCII字母开头,后面可以跟任意数量的字母、数字、+、-或. - 针对
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
实际含义是:URI的结构是scheme:加上层级部分,后续可选追加?query,还可选追加#fragment
内容的提问来源于stack exchange,提问作者Sven Voigt
相关产品推荐
相关产品推荐

