我已經輸入文件here(請解壓縮它)和下面的代碼。剛剛打印出「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;
}
編輯:理想我想弄清楚任何制服重複的字節模式(長什麼: 4)在連續組(最大50)中,其中每個組大小可以是4 + 30字節最大值和4 + 5字節最小值。
例如(各組大小在重複 '=>' 1至30字節):
'CS'=> '捷克', 'DA'=> '丹麥', 'NL' =>'荷蘭語','fi'=>'芬蘭語','fr'=>'法語','de'=>'德語','el'=>'希臘語',
該行:print「pat = \ n」;打印以下和掛起:
輕拍= <, '小時'=> '克羅地亞語', 'CS'=> '捷克', 'DA'=> '丹麥', 'NL'=>「荷蘭」, '網絡'=> '芬蘭', 'FR'=> '法國', '德'=> '德', '厄爾尼諾'=> '希臘', '喜'=> '印地文', '它' => '意大利', 'JA'=> '日本', 'KO'=> '韓', '無'=> '挪威', 'PL'=> '波蘭', 'PT'=> '葡萄牙' 'RO'=> '羅', '儒'=> '俄羅斯', 'ES'=> '西班牙語', 'SV'=> '瑞典', 'CA'=> '加泰羅尼亞語', 'TL'= > '菲律賓', 'IW'=> '希伯來語', 'ID'=> '印度尼西亞', 'LV'=> '拉脫維亞', 'LT'=> '立陶宛語', 'SR'=> '塞爾維亞語', 'SK'=> '斯洛伐克語', 'SL'=> '斯洛文尼亞語', 'UK'=> '烏克蘭', 'VI'=> '越南', '平'=> '阿爾巴尼亞人', '等'=> '愛沙尼亞語', 'GL'=> '加利西亞語', '虎'=> '匈牙利語', 'MT'=> '馬耳他', '日'=> '泰', 'TR'=> '土耳其',」 FA '=>' 波斯 ' 'AF'=> '語', '毫秒'=> '馬來', 'SW'=> '斯瓦希里', 'GA'=> '愛爾蘭', 'CY'=>'威爾士 ' '是'=> '白俄羅斯', '是'=> '冰島', 'MK'=> '馬其頓', '義'=>' Y iddish'''hy'=>'亞美尼亞','az'=>'阿塞拜疆','eu'=>'巴斯克語','ka'=>'格魯吉亞語','ht'= >>
你能用文字解釋你想要哪個正則表達式匹配等嗎? –
@martin clayton我已更新編輯 – AgA