전종필 /usr/local/bin/perl과 같은 파일의 경로에서 경로의 디렉토리부분과 파일이름을 분리해 내고자 할때 사용할 수 있는 팁입니다. File::Basename이라는 모듈이 있긴 하지만, 단순한 분리만을 위한 것이라면 위 모듈까지 사용할 필요는 없습니다. 너무 간단합니다. 정규식이 너무 간단해서 좀 의심이 가시는 분도 있을 것입니다. 혹,
가 출력되는 것이 아닌가 하는 의심을 가질 수 있습니다. 좋은 의문입니다. (그러나, 실험해
보지않고 의심을 가졌다면 나쁜 습관입니다. ^_^ )정규식에서 *나 +, {2,5}와 같은 양(量)의 개념이 사용될 때에는 기본적으로 적용가능한 가장 큰 수가 적용됩니다. 따라서, 다음 코드는 다음 내용이 아닌
다음과 같은 내용을 출력합니다.
그러므로 위에서 경로와 파일을 분리하는 코드에서도 (.*/)가 적용가능한 가장 긴
문자열인 ``/usr/local/bin/''에 일치되는 것입니다. |
Tips in Action > 정규식 >