다음 텍스트 파일에서 모든 API를 정렬하고 싶습니다.Perl에서 정규 표현식의 일치하는 부분을 저장하려면 어떻게해야합니까?
$infostring = lc($infostring);
while ($infostring =~ /dll name:/g)
{
print "found dll\n";
}
유일한 문제는 실제 dll 이름 또는 최소한 위치를 얻는 방법입니다. 찾은 문자열?
다음 텍스트 파일에서 모든 API를 정렬하고 싶습니다.Perl에서 정규 표현식의 일치하는 부분을 저장하려면 어떻게해야합니까?
$infostring = lc($infostring);
while ($infostring =~ /dll name:/g)
{
print "found dll\n";
}
유일한 문제는 실제 dll 이름 또는 최소한 위치를 얻는 방법입니다. 찾은 문자열?
당신은 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
또는 일치를 통해 반복 엉망 할 필요에 일치하는 항목이 여러 개 존재하지 않을 경우 한 줄.
while ($infostring =~ /DLL Name: (.*)/g)
{
print "found dll: $1\n";
}
perlre 매뉴얼 페이지를 읽어보십시오. 캡처 링 그룹 (괄호로 표시)을 사용하여 DLL의 이름을 캡처해야합니다. 그런 다음 나중에 $1
, $2
..., $n
을 사용하여 캡처를 참조 할 수 있습니다. 정규식 튜토리얼 (Perlretut)도 좋습니다 : http://perldoc.perl.org/perlretut.html – daotoad