2014-05-11 2 views
-1
while ($aaa =~ m/= "(\D.*?)"/g) 

$aaaanything = "something" 인 경우 일치하는 것으로 나타났습니다 (따옴표없이) something을 반환합니다.이 Perl while 루프는 무엇을 의미합니까?

하지만이 코드는 무엇을 의미합니까?

m/= "(\D.*?)"/ 
+0

답장을 보내 주셔서 감사합니다. ysth 및 blueygh2입니다. – mozartsg

답변

1

당신은 그것의 대부분을 알아 낸 것 같다. =, "은 문자 그대로 문자와 일치합니다. ()은 일치하는 문자열의 일부를 캡처하여 $1으로 사용할 수 있도록합니다. 괄호 안의 부분은 "까지 0이 아닌 숫자 (*?) 개행 문자 (.)가 뒤 따르는 비 숫자 문자 (\D)와 일치합니다. *도 0 번 이상 일치하지만 더 많은 문자와 일치하는 것을 선호하므로 *?과 같이 다음 문자 대신에 마지막 문자 인 "까지 일치하게됩니다.

모든 내용은 perlre에 설명되어 있습니다.

1

\D는 숫자가 아닌, .*? 어떤 종류의, 0 개 이상의 문자 뒤에 여부를 의미하며, 기호와 인용 부호가 그대로 촬영과 같습니다.

은 왼쪽에서 오른쪽으로 :

m/= "(\D.*?)"/g 

match operator, 
start regex: 
    equals sign, whitespace, double quotation mark, 
    start group: 
    one non-digit character, zero or more characters, 
    end group, 
    double quotation mark, 
end regex 
match globally