0

我正在尝试编写一个正则表达式来验证用户提供的用户代理是否有效。

我发现http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html部分“14.43 User-Agent”:

14.43 用户代理

User-Agent request-header 字段包含有关发起请求的用户代理的信息。这是出于统计目的、协议违规的跟踪以及用户代理的自动识别,以便定制响应以避免特定的用户代理限制。用户代理应该在请求中包含这个字段。该字段可以包含多个产品令牌(第 3.8 节)和标识代理的注释以及构成用户代理重要部分的任何子产品。按照惯例,产品令牌是按照它们对识别应用程序的重要性的顺序列出的。

  User-Agent     = "User-Agent" ":" 1*( product | comment )

例子:

  User-Agent: CERN-LineMode/2.15 libwww/2.17b3

但我不太确定这是什么意思1*。任何人都可以解释它或编写正则表达式吗?

谢谢!

4

1 回答 1

0

If you look at the notation at the start of the RFC, you can see that N*M rule means N to M repetitions of rule. N is optional, and defaults to zero. M is optional, and defaults to infinity. In normal regular expressions, this translates to: rule{N,M}

In your case, 1* means one or more repetitions. In normal regular expressions, you can use the postfix + operator: rule+

于 2013-05-06T08:14:11.803 回答