我在这里有输入文件(请提取它)和下面的代码。就在 print "pat=\n"; 之后 它挂在模式匹配中,而我在 Windows 任务管理器 Perl(v5.010000) 中看到占用 25% 的 CPU 时间:
use strict;
open FP, "<default.php" or die "can't read";
$/ = undef;
my $content = <FP>;
while ( $content =~ /(['"])([^\s\x00-\x1f]{300,})\1/gs ) {
#looks like we've found base encoded string etc
my $subpat = $2;
print "pat=<$subpat>\n";
if ( $subpat =~ m#(?:(....).{5,30}(?=\1)){50}#s ) {
print "hello world";
} else {
die("");
}
exit;
}
编辑:理想情况下,我想找出连续组(最多 50 个)中任何统一的字节重复模式(长度:4),其中每个组的大小可以是最大 4+30 字节和最小 4+5 字节。
例如(在每组大小 1 到 30 个字节中重复 '=>'):
'cs'=>'捷克语','da'=>'丹麦语','nl'=>'荷兰语','fi'=>'芬兰语','fr'=>'法语','de'=> '德语','el'=>'希腊语',
该行:打印“pat=\n”;打印以下内容并挂起:
pat=<,'hr'=>'克罗地亚语','cs'=>'捷克语','da'=>'丹麦语','nl'=>'荷兰语','fi'=>'芬兰语',' fr'=>'法语','de'=>'德语','el'=>'希腊语','hi'=>'印地语','it'=>'意大利语','ja'=>'日语','ko'=>'韩语','no'=>'挪威语','pl'=>'波兰语','pt'=>'葡萄牙语','ro'=>'罗马尼亚语','ru '=>'俄语','es'=>'西班牙语','sv'=>'瑞典语','ca'=>'加泰罗尼亚语','tl'=>'菲律宾语','iw'=>'希伯来语','id'=>'印尼语','lv'=>'拉脱维亚语','lt'=>'立陶宛语','sr'=>'塞尔维亚语','sk'=>'斯洛伐克语','sl'=>'斯洛文尼亚语','uk'=>'乌克兰语','vi'=>'越南语' ,'sq'=>'阿尔巴尼亚语','et'=>'爱沙尼亚语','gl'=>'加利西亚语','hu'=>'匈牙利语','mt'=>'马耳他语','th'= >'泰语','tr'=>'土耳其语','fa'=>'波斯语','af'=>'南非荷兰语','ms'=>'马来语','sw'=>'斯瓦希里语', 'ga'=>'爱尔兰','cy'=>'威尔士','be'=>'白俄罗斯','is'=>'冰岛','mk'=>'马其顿','yi'=> '意第绪语','hy'=>'亚美尼亚语','az'=>'阿塞拜疆','eu'=>'巴斯克','ka'=>'格鲁吉亚','ht'=>>