У меня есть входной текстовый файл, содержащий несколько строк в указанном формате.
JMOD_01 :: This is starting of grouping 2nd KFGJHFG RTIRT DFB SFJKF ERIEFF FJDKF OIOIISD SDJKD
last line ______________ 5564 numerical digits.
This is second starting of grouping 2nd KFGJHFG RTIRT FSFJKF
ERIEFF FJDKF OIOIISD SDJKD
till this end ___________ 021542 some random digits.
Я пытаюсь прочитать этот файл и извлечь искомый шаблон группированием
Это ниже, что я пробовал.Я попытался сгруппировать первый матч, и он получился правильно.Проблема возникает при поиске второй группировки, поскольку она не учитывает элементы следующей строки.
open(IFH,'<',"file.txt");
while ($line = <IFH>) {
if ($line =~ /^\s*(\w+\_\d*.*)\s*::(.*)/s) {
print "$1\n";
print "$2\n";
}
}
close(IFH);
Ожидаемый результат:
print $ 1;# Это должно дать мне
JMOD_01
fdgh_6765_546/456
и когда выведите $ 2;# тогда это должно дать мне
"This is starting of grouping 2nd KFGJHFG RTIRT DFB SFJKF ERIEFF FJDKF OIOIISD SDJKD last line"
"This is second starting of grouping 2nd KFGJHFG RTIRT FSFJKF
ERIEFF FJDKF OIOIISD SDJKD till this end"
и когда выведите $ 3;# тогда это должно дать
"5564 numerical digits"
"021542 some random digits"
Но фактический результат будет другим для 2-й группировки: print $ 2;# фактический вывод
"This is first starting of grouping 2nd KFGJHFG RTIRT DFB SFJKF"
"This is second starting of grouping 2nd KFGJHFG RTIRT FSFJKF"