컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 자바스크립트] 퍼센트 계산, 백분율 구하기 소스; Percent JavaScriptExcel 엑셀, 지정한 범위의 난수 값 생성, 특정 범위 내에서 랜덤 발생; Random...구글어스] 만리장성 위성 사진, Google Earth, The Great Wall of ...만리장성 영어로 번역하면? 영어식 이름? 중문 간체자로; Wanli Changcheng E...자금성 영어로 번역하면? 영어식 이름은? 한문으로; Zijin Cheng English N...Excel 엑셀, 난수 소수점 없애는 방법, 삭제, 정수 랜덤 숫자 출력; Int Rand...매스매티카] 분수를 소수로 변환 함수/명령어; Mathematica Fraction To ...매스매티카] 소수를 분수로 변환 함수/명령; Mathematica Decimal To Fr...Perl 펄] 소수를 분수로 변환 함수 구현; Decimal To Fraction Func...0에서 1사이의 난수 생성; 0.0부터 1.0까지 랜덤 Random 넘버 발생 JavaSc...

Perl 펄] 정규식 확장자 추출, 파일명에서; Regex Filename Extension

Saturday, March 31, 2007

파일 이름에서, 정규식으로 확장자만 매치하여 추출하는 방법입니다.

다음과 같은 정규식을 이용합니다.
.+\.(\w+)?$


Perl: 정규식으로 확장자 매치하여 추출 예제


스크립트 파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;

  my $filename;
  my $ext;
  my $s;



  # 파일명 정의
  $filename = "test.txt";

  # 확장자 매치 (이 경우는 txt)
  $filename =~ m<.+\.(\w+)?$>;
  # 패스명의 슬래시(/)와 충돌하기에
  # 정규식 구분자를 < 기호로 변경했음

  # 매치된 확장자가 들어간 $1 이라는 변수의 값을 꺼냄
  $ext = $1;
  print "<", $ext, ">\n";
  # 출력 결과: <txt>
  # 알아보기 쉽게 확장자를 <> 기호로 둘렀습니다.
  # 실제는 txt 만 출력됨




  # 공백 들어간 파일명
  $filename = "My Test.doc";
  $filename =~ m<.+\.(\w+)?$>;
  print "<", $1, ">\n";
  # 출력 결과: <doc>


  # 확장자 없는 파일명
  $filename = "Cool";
  $ext = "";
  $ext = $1 if ($filename =~ m<.+\.(\w+)?$>);
  print "<", $ext, ">\n";
  # 출력 결과: <>
  # 아무것도 매치되지 않았기에,
  # $1 의 값은 예전 값인 doc 을 가지고 있음
  # 따라서 if를 사용하여 구현


  # 마침표가 2개 이상인 파일명에서도
  $filename = "Oh... Hmm.Cool.xls";
  print "<", $filename =~ m<.+\.(\w+)?$>, ">\n";
  # <xls>


  # 2중 확장자는 마지막 확장자만 추출
  $filename = "Date.tar.gz";
  print "<", $filename =~ m<.+\.(\w+)?$>, ">\n";
  # <gz>


  # 유닉스/리눅스 히든 파일 (앞에 점 있는 파일)
  $filename = ".inputrc";
  print "<", $filename =~ m<.+\.(\w+)?$>, ">\n";
  # <>
  # 윈도우에서는 이 경우 inputrc 를 확장자로 간주하지만
  # 실은 확장자가 아니기에 없는 것이 정상




정규식을 사용하지 않고, 확장자만 추출하는 함수를 직접 구현: ▶▶ Perl/펄] 파일명에서, 확장자 구하는 함수; Get File Extension Only


File::Basename 모듈을 사용한 가장 편리한 방법: ▶▶ Perl 펄] 패스에서, 디렉토리명/파일명/확장자 분리 추출; Split Path Name




0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top