html
  • perl
  • 2012-05-17 5 views 0 likes 
    0

    reg 표현식 $ START_REGEX에서 $ END_REGEX까지의 텍스트를 어떻게 인쇄 할 수 있습니까?RegEx에서 텍스트 인쇄

    #!/usr/bin/perl -w 
    
    use strict; 
    use warnings; 
    
    package HTMLStrip; 
    use base "HTML::Parser"; 
    use LWP::Simple; 
    
    my $START_REGEXP = 'To the current program'; 
    my $END_REGEXP = 'Please choose'; 
    
    sub text { 
        my ($self, $text) = @_; 
        print $text; 
    } 
    
    my $p = new HTMLStrip; 
    $p->parse_file("index.html"); 
    $p->eof 
    

    답변

    1
    다음 두 문장 사이의 값을 얻기 위해 그룹을 사용하여 단지 수

    : 다음

    To the current program(.*)Please choose 
    

    는, 값이 뭔가를 $1,$2, etc

    Here is the rubular

    에 저장됩니다 더 많은 perl-cut-and-paste (from this SO question)

    my @values = ($text=~/$START_REGEXP(.*)$END_REGEXP/gm); 
    print "The first value is $values[0]\n"; 
    

    저는 PERL 개발자가 아니므로 외삽 법을 적용하고 있습니다. 어떤 종류의 문법이 꺼져 있다면 당신은 더 많은 연구를해야 할 것입니다.

    +0

    $ text = ~ /$START_REGEXP(.*)$END_REGEXP/를 추가하면; 변경 사항은 없으며, 그 문구 사이의 텍스트가 아닌 모든 내용을 인쇄합니다. – arge

    +0

    @arge 더 잘리고 붙여 넣기 위해 내 대답이 업데이트되었습니다 ... –

    관련 문제