我见过\ s ++但是我不确定它是什么意思。你能用一个例子吗? (\ s表示空格)
答案 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
我正在计算正则表达式引擎解决匹配所需的步数。虽然没有匹配,但它不知道。它在第一种情况下尝试了一堆真正的愚蠢的东西,占有式匹配阻止它在第二种情况下尝试。一旦进行了占有式匹配,就无法将其重新计算并重新计算。