似乎使用一个字符类比一个例子中的交替更快,比如: [abc]vs (a|b|c) 我听说它被推荐,并且使用Time::HiRes我验证的简单测试(慢10倍).在捕获括号产生差异的情况下 也使用(?:a|b|c)不会改变结果. 但我不明白为什么.我认为这是因为回溯,但我在每个位置看到它的方式有3个字符比较所以我不确定回溯是如何影响交替的.这是实施交替性质的结果吗?
[abc]
(a|b|c)
Time::HiRes
(?:a|b|c)
regex perl performance character-class regex-alternation
character-class ×1
performance ×1
perl ×1
regex ×1
regex-alternation ×1