텍스트가 있고 정규 표현식과 perl을 사용하여 파서를 작성했습니다.일치점을 텍스트의 정확한 지점에서 일치시키는 방법
2 개의 빈 줄 뒤에 텍스트 블록을 인식 할 수있는 패턴이 있기 때문에 2 개의 빈 줄 (정규 표현식 사용)과 필요한 부분을 일치시킬 수 있습니다.
하지만 문제는 전체 텍스트가 소개 부분과 일부 텍스트가 필요하지 않다는 것입니다. 이 두 개의 빈 라인
#!/usr/bin/perl
use strict;
use warnings;
my $file = 'first';
open(my $fh, '<', $file);
my $empty = 0;
my $block_num = 1;
open(OUT, '>', $block_num . '.txt');
while (my $line = <$fh>) {
chomp ($line);
if ($line =~ /^\s*$/) {
$empty++;
} elsif ($empty == 2) {
close(OUT);
open(OUT, '>', ++$block_num . '.txt');
$empty = 0;
}
else {
$empty = 0;}
print OUT "$line\n";
}
close(OUT);
이 내가 (정말 작습니다 :))
필요로하는 텍스트의 예입니다을 발견하면 여기 텍스트와 일치하는 코드입니다
나는 그것이 단어 LOREM을 발견 할 때까지 텍스트를 반복 할 필요가 있다고 생각한다. 이 텍스트는 "/^LOREM IPSUM /"이라는 정규식을 사용하여 필요한 텍스트가 시작되는 지점이기 때문에 (그리고 단어에 도달하면 텍스트를 한 파일에 저장하기 때문에). 그리고 INDEX 단어가 fount 일 때 텍스트를 반복하거나 텍스트를 별도의 파일에 저장해야합니다.
어떻게 구현할 수 있습니까? 사용해야합니까? 다음 번에 줄을 진행하는 기능이 있습니까?
BR, 율리야
이이 관련 포스트 http://stackoverflow.com/questions/4635833/ – yuliya
내가 파일을 후루룩 소리 내며 먹기와 블록을 일치합니다. 그런 식으로 당신은 다소 못생긴 linecounting 주위에 어지럽히 지 말아야한다 –
어쩌면 당신은 맞다. 그러나 나는 어떤 코드 조각으로 그것을하는 것을 선호 할 것이다. – yuliya