Tips in Action‎ > ‎정규식‎ > ‎

정규식 사용시 실제 일치된 부분 보기

전종필

정규식 사용시 실제 일치된 부분이 어떤 내용인지 알고 싶을 경우가 있습니다. 특히 디버깅을 할 때가 더욱 그렇습니다. 이 때 사용하는 것이 $`, $&, $' 특수변수입니다.

$var = 'wana banana?';
if( $var =~ /b?a(na)+/ ) {
	print "야 ! 바나나다 !!\n";
}
위와 같은 코드에서 실제 일치된 부분을 출력 하려면 print "$&\n";하면 됩니다. 좀더 명확히 하기 위해서 일치된 부분의 앞부분을 나타내는 $`와 일치된 부분의 뒷부분을 나타내는 $'를 같이 출력해 보면 더욱 명확할 것입니다.

$var = 'wana banana?';
if( $var =~ /b?a(na)+/ ) {
	print "야 ! 바나나다 !!\n";
	print	"앞쪽: $`\n",
		"일치: $&\n",
		"뒷쪽: $'\n";
}
이 프로그램을 실행하여 출력된 내용은 다음과 같습니다.

야 ! 바나나다 !!
앞쪽: w
일치: ana
뒷쪽:  banana?
예상한 것과 일치하였습니까 ? 
Comments