++ 和 *+ 是什么意思?

2022-08-30 20:02:54

我正在将一些库从PHP移植到JavaScript,我遇到了这个正则表达式,它的某些部分对我来说是不清楚的。

#(?: *+(?<= |^)\.((?:\([^)\n]++\)|\[[^\]\n]++\]|\{[^}\n]++\}|<>|>|=|<){1,4}?))#

不明确的部分是

  1. *+
  2. ++

我知道,这个表达式应该接受这样的字符串

.(title)[class]{style}<>
.[class]{style}<>
.[class](title){style}
// and so one - no metter of order \(.+\), \[.+\] and \{.+\} parts 
// and optional <>, >, = or < at the end

此表达式与修饰符一起使用。PCRE_UNGREEDY


答案 1

++

什么是正则表达式中的双加号?

这是一个所有格量词

这基本上意味着,如果正则表达式引擎稍后无法匹配,它将不会返回并尝试撤消在此处进行的匹配。在大多数情况下,它允许引擎更快地失效,并且可以在您需要的地方为您提供一些控制 - 这对于大多数用途来说非常罕见。

*+

*+是量词的所有格量词。*


答案 2

推荐