2009-09-16 2 views

답변

9

당신은 DLL의 이름을 캡처하기 위해 정규식을 확장 할 필요가 변수를 $1에 저장합니다. (괄호 개 이상의 세트를 가지고 있다면, 두 번째는 등, $3에, $2로 세 번째를 갈 것)

편집 : 나는 동안 입력 사양이 질문에 대한 편집에 의해 변경 것처럼이 보이는 내 대답 쓰기 ... 위의 모든 DLL 이름을 포함하는 단일 입력 문자열에 대한 것입니다. 새로운 형식에 따라, 별도의 행에 각 하나를 대신 사용하려는 것 :

while (my $infostring = <$input_filehandle>) { 
    $infostring = lc($infostring); 
    print "found dll: $1\n" if $infostring =~ /dll name: (\S+\.dll)/; 
} 

정규식에 /g 또는 일치를 통해 반복 엉망 할 필요에 일치하는 항목이 여러 개 존재하지 않을 경우 한 줄.

1
while ($infostring =~ /DLL Name: (.*)/g) 
{ 
    print "found dll: $1\n"; 
} 

perlre 매뉴얼 페이지를 읽어보십시오. 캡처 링 그룹 (괄호로 표시)을 사용하여 DLL의 이름을 캡처해야합니다. 그런 다음 나중에 $1, $2 ..., $n

+0

을 사용하여 캡처를 참조 할 수 있습니다. 정규식 튜토리얼 (Perlretut)도 좋습니다 : http://perldoc.perl.org/perlretut.html – daotoad

관련 문제