저는 컴퓨터 사용 시 정규표현식을 많이 사용하는 편입니다. 

처음 정규 표현식에 대해 공부할때 Perl을 사용하였습니다. 

그러다 보니 평소에 펄 스타일의 정규표현식을 주로 시도하는 편인데~ 오늘 알고보니 POSIX 에서는 일부 Perl 스타일의 정규표현식들이 정상적으로 동작하지 않더군요. 

Bash Shell 에서 정규표현식을 사용할 때 숫자를 매칭 할 때는 Perl 스타일로 \d 를 사용하면 안 된다는 것을 알게 되었습니다. 또한 word 를 매칭하는 경우도 \w 를 사용하면 안되더군요. 

위 내용을 비롯한 차이들은 아래 주소에서 확인 할 수 있습니다. 


https://en.wikipedia.org/wiki/Regular_expression#Character_classes


Bash Shell 에서 숫자를 매칭하는 경우에는 [0-9] 또는 [:digit:] 를 사용해야 하고~

워드를 매칭하고 싶은경우에는 \w 가 아닌 [A-Za-z0-9_] 를 사용해야 합니다. 

알파벳만 매칭하고 싶다면 [:alpha:] 나 [A-Za-z] 를 사용하면 됩니다.


Python 에서 변수 내의 텍스트를 정규표현식에 사용하고자 하는 경우 re.escape 함수를 사용한다.

아래에는 tempText 라는 문자열 중에서  'Save','expressions', 'the' 라는 변수에 저장된 string 을 변경하는 예이다.





import re

tempText = '''
Save Favorites & Share expressions with friends or the Community.
'''
tempText2 = tempText

variables =['Save', 'expressions', 'the']

for var in variables:
  regStr = re.escape(var)
  tempText = re.sub(regStr, '', tempText, flags=re.I | re.MULTILINE)

print "-"*30 + "Before Change" + "-"*30
print tempText2

print "-"*30 + "After Change" + "-"*30
print tempText

위 예제 코드를 돌려 보면 다음과 같은 결과를 얻을 수 있다. variables 라는 변수내의 string 들이 정규표현식에 의해 정상적으로 치환 되는 것을 확인 할 수 있다. 

------------------------------Before Change------------------------------

Save Favorites & Share expressions with friends or the Community.

------------------------------After Change------------------------------

 Favorites & Share  with friends or  Community.




어쩌다 보니 C#을 약간 다루어야 할 일이 생겼다.

 

C# 은 아주 오래 전에 그냥 책 한번 보고 간단한 폼 좀 만들어서 가지고 놀아본 경험이 있었지만 그 이후로는 거의 사용하지 않은 언어이다.

 

그 당시에는 Visual studio Express 을 다운로드 받아서 사용했는데

 

오늘 회사에서 확인을 해보니 우리 회사에서 Express 버전을 다운로드 받아서 사용하면 안 될 것 같았다.

 

일단 뭐 하도 오래 전에 약간 본 언어라 어케 했었는지 가물 가물 하고 해서 자료를 좀 찾아보니 역시나 요즘 인터넷 세상에는 모든 자료가 널려 있었다.

 

아래 주소에 가보니 일단 쉽게 시작 할 수 있었다.

 

http://www.csharpstudy.com/

 

http://www.hoons.net/Lecture/View/537

 

Visual Studio 를 설치하지 못하면 C#을 할 수 없는 거 아닌가 생각했는데~ Console 에서 작업은 할 수 있었다.

 

C# 컴파일러는 csc.exe 인데~ 찾아보니 아래 path 와 같이 두 개의 csc.exe 파일이 있는 것을 확인 할 수 있었다.

 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe

 

하나는 32비트용 이고 하나는 64 비트 용인 듯 하다.

 

아무튼 위 path 에 C# 컴파일러가 있으니 간단하게 아래 주소에 있는

 

정규표현 식 사용 예제를 하나 돌려 봤다.

 

https://msdn.microsoft.com/ko-kr/library/ms228595.aspx

 

Source 의 파일 명은 test.cs 라고 했고~ CMD 창에서 다음과 같이 컴파일 했다.

 

test.cs


C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe test.cs

 

 

다음으로 만들어진 test.exe 파일을 실행 해 봤다.

 

위 예제에서 설명한 데로 잘 된다. ㅎㅎㅎ



많은 스크립트 언어가 있지만 정규표현식이나 문자열 처리 등에는 정말 Perl 만한 언어가 없는 것 같습니다.

 

조금만 사용할 줄 알아도 생활이 편해 지더군요.

 

저는 Perl을 그리 잘은 못하고 간단한 정규표현식이나 몇 몇 모듈 등만 아는 정도인데~

 

Perl을 사용하면서 제 생활이 정말 많이 편해졌다는 생각을 많이 합니다.

 

컴퓨터를 사용하려면 당연히 프로그램을 실행 시킬 텐데 이런 프로그램 실행을 정말 빠르고 쉽게 할 수 있는 툴로 Launchy 에 대해 아래 포스팅에서 소개한 적이 있습니다. 


2013/09/01 - [유틸] - 편리한 런치 프로그램 Launchy


2014/04/20 - [유틸] - 생산성 향상 어플 Launchy plugin 추가 방법

 

Launchy 의 다양한 기능 중에 저는 Weby 를 많이 사용하곤 하는데 Weby를 사용하다 보니~ 브라우저에서 더 이상 북 마크 기능은 안 쓰게 되더군요.

 

사실 북 마크를 해 놓더라도 그거 찾다가 시간 다 가곤 하는데 weby 를 사용하면서는 이런 불편 함 이 사라졌습니다.

 

그런데 Launchy 의 Weby를 사용하다가도 불편한 점이 생기더군요.

 

저는 Launchy를 이곳 저곳에서 사용하는데~ launchy 의 설정 등을 백업해서 정리를 합니다.

 

가령 집에서 사용하는 launchy의 설정은 launchy.home.ini 이라고 하고~ 회사에서 사용하는 Launchy 의 설정 파일은 launchy.com.ini 로 저장곤 합니다.

 

이곳 저곳에서 분산된 설정들을 한곳에 모으기 위해서는 merge 를 해야 하는데~ 한 두 개 일 때는 쉽지만 항목들이 여러 개가 되면서는 merge 하기가 힘들더군요.

 

그래서 간단하게 launchy.ini 파일들을 merge 하는 Perl 스크립트를 작성해 봤습니다. 아래 붉은 색으로 표시한 부분이 merge 할 파일 들이고 Perl 코드는 ini 파일들과 같은 폴더에서 실행 시켰습니다.

 

본인의 머지 할 파일 명들을 아래 @FILEPATH 부분에 기록해 주면 됩니다.

  

위 코드를 실행 시키면~ Merge.txt, Merge_weby.txt 파일이 생성됩니다. Merge_weby.txt 파일이 weby 정보들에 대한 merge 파일 입니다.

 

복사 해서 launchy.ini 파일의 [weby] 부분에 붙여 넣기 하시면 됩니다.


  1. 김병문 2016.09.19 15:40

    지금은 dll 형식으로 바뀐 것 같습니다. 백업하려면 dll파일만 보관했다가 붙여넣기 하면 되나요?

    • 남성 2016.09.19 15:43 신고

      dll은 라이브러리인데... 그게 설정파일이 아닐겁니다

+ Recent posts