在TTML timeExpression的W3C语法表示中,“+”是什么意思?

问题描述 投票:1回答:2

我想了解TTML中timeExpressions的有效格式。 This section of the specification描述了语法。这是一个摘录:

<timeExpression>
  : clock-time
  | offset-time

clock-time
  : hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?

offset-time
  : time-count fraction? metric

hours
  : <digit> <digit>
  | <digit> <digit> <digit>+

                                    -- ✂ --

我在某种程度上熟悉该文件的命名,例如:我明白:

  • |表示OR
  • ( ... )团体
  • ?意味着可选

but what does + mean?


我认为它在正则表达式中意味着“一个或多个”,但如果是这样的话,为什么规范会这样:

hours
  : <digit> <digit>
  | <digit> <digit> <digit>+

而不是简单地:

hours
  : <digit> <digit>+
w3c ttml
2个回答
3
投票

该文件指出:

使用Kleene运算符?,*和+将信息项的允许内容显示为语法片段。

在那个语法中,+确实意味着一个或多个。

由于hours需要为值<10填充零,这两个定义可能就是为了说明这一点。


1
投票

+表示可以存在一个或多个片段。区分2位数小时和3位或更多位小时组件的原因我相信暗示在某些时基中,小时数只能是2位数,而在其他时间段则可能更多。在任何一种情况下,最小位数是2.我同意只显示<digit> <digit>+实际上意味着相同的东西,但它不会带有微妙的含义,有时最大位数是2。

“2位或更多位”条目没有说<digit> <digit> | <digit> <digit> <digit>*的原因是,当存在2位数时,两者将无法区分。据我所知,这是一个不错的选择。

© www.soinside.com 2019 - 2024. All rights reserved.