음악 파일 이름 등을 일괄 변경 하는 경우 이전에 말씀 드린 NexusFile 등과 같은 프로그램의 파일이름 바꾸기 도구 등을 이용하면 대부분 편리하게 변경이 가능합니다.
2011/03/26 - [컴퓨터일반] - NexusFile 을 이용한 파일 이름 일괄 변경
하지만 이런 툴 들도 개발자가 만들어준 틀 안에서만 바꿀수 있기 때문에 내 마음대로 모든걸 바꾸기에는 한계가 있습니다. 이럴때를 위해 약간의 프로그램 지식을 쌓는 것이 좋다고 생각됩니다.
윈도우 운영체제에서라면 Autohotkey 를 공부하시기를 권해 드립니다. 굉장히 쉬우면서도 컴퓨터 사용을 효율적으로 할 수 있게 도와 주는 언어거덩여~~ 물론 영어의 압박도 있고… 나름 노력도 필요하긴 하지만 들어간 노력에 비해 정말 다양한 것들을 할 수 있는 툴이라는 데는 의심의 여지가 없습니다.
2012/02/22 - [컴퓨터일반] - Autohotkey를 사용해 보아요~
어쨌든 오늘은 Autohotkey 의 정규 표현식을 이용하여 음악 파일 이름 바꾸기를 하다가 제가 최근에 편리하게 사용하게 된 것들에 대해 말씀 드리겠습니다.
노블레스(Noblesse)-마음을다한사랑(feat김동희) 라는 이름의 음악 파일이 있습니다.
저는 위 파일 이름에서 괄호가 눈에 거슬려서 Autohotkey 의 정규 표현식을 이용하여 괄호를 지우려고 다음과 같이 코딩 했습니다.
Temp_File_name=노블레스(Noblesse)-마음을다한사랑(feat김동희) ; 음악 파일 이름
NewStr1:= RegExReplace(Temp_File_name, "\(.*\)") ; 괄호와 그 안의 내용 지우기, 탐욕스러운 수량자
MsgBox, %NewStr1% ; 결과 확인
위 코드에 대해 간단하게 설명 하면, Autohotkey 에서 정규표현식을 이용하여 매치되는 글자를 변경할 때 사용하는 함수인 RegExReplace()를 사용하여 괄호 [( )]와 그 안의 모든 글자 [ .* ] 를 지우려 했습니다. 여기서 괄호 앞쪽에 \ 이 붙은건 글자 그대로의 괄호를 인식 시키기 위해 \(, \) 이렇게 표현한 겁니다.
위 코드의 결과는 이렇게 나옵니다. 제 생각되는 다르게 (Noblesse)-마음을다한사랑(feat김동희) 부분이 다 지워지더군요.
그래서 정규표현식에 대해 좀 뒤지다 보니… 수량자는 탐욕스러운 연산을 한다고 하네요… 따라서 (Noblesse), (feat김동희) 만 쏙 빼서 지우고 싶으면 탐욕스럽지 않은 연산자를 사용해야 한다고 합니다.
그렇담 탐욕스럽지 않은 연산자는 어케 사용하느냐 봤더니 무쟈게 간단하더군요. 걍 수량자 뒤에 물음표 ? 하나만 붙이면 됩니다. ㅋㅋㅋㅋ
그래서 탐욕스럽지 않은 연산자로 수정한 코드는 다음과 같습니다.
Temp_File_name=노블레스(Noblesse)-마음을다한사랑(feat김동희) ; 음악 파일 이름
NewStr2:= RegExReplace(Temp_File_name, "\(.*?\)") ; 괄호와 그 안의 내용 지우기, 탐욕스럽지 않은 수량자
MsgBox, %NewStr2% ; 결과 확인
결과는 이렇게 괄호와 그 안의 내용만 쏙 빼서 지우고 나오더군요~~~
정규 표현식은 Perl 이 갑이긴 한데~~ Autohotkey 에서도 매우 효율적으로 이용할 수 있더군요~~
Autohotkey 의 정규 표현식은 Perl-compatible regular expression (PCRE) 이라고 하더군요. 뭐 딱 봐도 알겠지만 Perl 의 정규 표현식 문법을 차용해서 만들어 진 듯 합니다.
'programming language > Autohotkey' 카테고리의 다른 글
Autohotkey로 마우스 위치 pixel 의 색깔 확인 하기 (0) | 2012.06.09 |
---|---|
Autohotkey_L Text to Speech (1) | 2012.05.21 |
Autohotkey_L 글자 보내기 Send (0) | 2012.05.16 |
Autohotkey_L 인코딩… 아직 적응 안됨 (2) | 2012.05.13 |
Autohotkey로 인터넷 사전 이용하기 (0) | 2012.03.20 |
Autohotkey 로 제어판 다루기 (4) | 2012.03.17 |
Autohotkey를 사용해 보아요~ (0) | 2012.02.22 |
스타크래프트 할 때 윈도우 키, 탭 키 막기 (0) | 2011.12.21 |
댓글