我想使用以下正则表达式捕获几个文本:
$text_normal = qr{^(\/F\d+) FF (.*?) SCF SF (.*?) MV (\(.*?)SH$};
字符串的示例如下所示:
my $text = '/F12345 FF FF this is SCF SF really MV (important stuff SH';
可以重写以加快匹配吗?
解决方法
优化正则表达式没有单一的答案.您可以使用
re编译指示查看特定正则表达式正在执行的操作:
use re 'debugcolor';
一旦你看到它遍历字符串,你会看到它出现问题的位置并从那里调整你的正则表达式.当你这样做时,你将学习一些关于正则表达式引擎的知识.
您还应该查看Mastering Regular Expressions,它告诉您正则表达式如何工作以及为什么某些模式比其他模式慢.