\ s + +正则表达式

时间:2010-11-11 08:36:36

标签: regex

我见过\ s ++但是我不确定它是什么意思。你能用一个例子吗? (\ s表示空格)

1 个答案:

答案 0 :(得分:6)

\s++表示匹配一个或多个空白字符占有

与撰写(?>\s+)相同。额外的加分使它具有占有欲,就像一个独立的小组。

这说明了不同之处:

% perl -Mre=debug -le 'print (("a " . " " x 300 . "x") =~ /a\s+\d/ || 0)' | & wc -l
     621
% perl -Mre=debug -le 'print (("a " . " " x 300 . "x") =~ /a\s++\d/ || 0)' | & wc -l
      26

我正在计算正则表达式引擎解决匹配所需的步数。虽然没有匹配,但它不知道。它在第一种情况下尝试了一堆真正的愚蠢的东西,占有式匹配阻止它在第二种情况下尝试。一旦进行了占有式匹配,就无法将其重新计算并重新计算。