使用perl的Regexp :: Optimizer,它可以实现
use Regexp::Optimizer;
my $o = Regexp::Optimizer->new->optimize(qr/foobar|fooxar|foozap/);
# $re is now qr/foo(?:[bx]ar|zap)/
如果找不到公共前缀(在这种情况下是'foo'),则不会继续匹配,因为常见的正则表达式引擎是NFA,所以可以获得很好的性能。 我想知道java世界是否有对应的Regexp :: Optimizer?