본문 바로가기

컴퓨터/자질구레 팁39

정규 표현식 사용 예제들 실제로 내가 사용했었던 정규 표현식들을 정리해 둔다. vi 와 파이썬에서 주로 사용했기 때문에 이 둘을 구분하여 정리해 둔다. 기본적인 내용은 책 등의 참고 자료를 이용하고, 이 곳은 실제로 사용했던 예를 살펴 보기 위한 것이다. 될 수 있으면 자세히 설명한다. 정규 표현식은 학습 곡선이 급격한 지수 그래프를 이루곤 하는데, 초반에는 너무 복잡해 보이는 것도 어느 정도 익숙해지면 무리 없이 따라갈 수 있다. 예제를 위한 예제가 아니라 실제 사용한 것들을 살펴 보며 익숙해짐과 동시에 그 유용성을 느꼈으면 하는 바램이다. vi/vim 에서 의 정규 표현식 :%s/\(^.\+\tSGM\t.\+$\)/#\1/g SGM 이 포함된 줄의 제일 처음에 # 를 입력한다. 즉, 주석 처리를 한다. 여기서 은 text f.. 2018. 2. 26.
윈도우즈의 vim 에서 텍스트 파일의 주석(#)이 작동하지 않을 때 언제부턴가 윈도우즈(MS-Windows)에서 vim (gvim) 으로 텍스트 파일을 열 경우 # 으로 시작하는 줄이 주석으로 인식이 되지 않기 시작했다. 이 경우 filetype.vim 파일에서 다음 부분을 주석 처리 하거나 파일의 가장 아랫 부분으로 옮겨 준다. filetype.vim의 내용 중 일부 " Plain text files, needs to be far down to not override others. This avoids" the "conf" type being used if there is a line starting with '#'.au BufNewFile,BufRead *.txt,*.textsetf text 위는 MS-Windows와 Linux/Mac에서 모두 해당하며, filety.. 2017. 10. 6.
vi 에서 tab 이 계속 space 로 바뀔 때 vi 혹은 vim 에서 tab 이 계속 space 로 바뀔 때는 :set noexpandtab 명령어를 사용한다. 설정 파일에서 변경을 했음에도 불구하고 적용이 되지 않을 경우 :verb 명령어로 가장 마지막에 적용된 파일을 찾아서 변경한다. 다른 텍스트 편집기와 마찬가지로 vi 에서도 tab 과 space 를 상호 전환할 수 있는데, 그 때 사용하는 명령어가 :set expandtab:set noexpandtab:retab 등이다. 관련 명령어로는 tabstop, shiftwidth, softtabstop 등이 있다. 지금 나의 경우 기본 설정이 계속 tab 을 space 로 변경을 하고 있었다. 그런데 기존 python code 들은 전부 tab 으로 사용했기 때문에 python 코드가 space 와.. 2016. 12. 14.
윈도우즈에서 만들 수 없는 파일 이름 윈도우즈에서는 CON. 으로 시작하는 이름의 파일은 만들 수 없다. 또한,AUX, NUL, COM1~COM9, PRN, LPT1~LPT9 으로 시작하는 파일도 만들 수 없다. 이러한 이름으로 시작하는 파일도 만들 수 없다. 이러한 이름은 특별한 장치들에 미리 할당된 이름이기 때문이라고 한다. CON의 경우 콘솔에 할당된 이름이라고 한다. 으... 저것 때문에 대략 1시간 정도 시간을 쓴 듯 하다. 파일이 안 만들어져... 일단 하드 디스크 용량이 충분한지 확인. 100GB가 넘게 남아 있었다. 그 후 파일 경로가 잘못되었는지 확인. 코드에 직접 하드 코딩해서 만들어도 안된다. STL을 ansi로 쓰고 있었는데 이게 유니코드랑 엮이면서 문제가 생긴 것인지 알아 보기 위해 CreateFile 로 파일을 생성.. 2014. 2. 3.