개요

 

문자열에서 내가 원하는 정보만을 추출해 낼 때, 정규식 (regular expression)을 사용하면 편리하다.


 

문제

다음과 같은 문자열 S가 있다고 하자.

2022-07-28 14:06:24;[DEBUG]    Epoch 9 학습시작. LR=[2.4471741852423235e-05]

 

S에는 epoch에 대한 정보와 LR에 대한 정보가 담겨있다.

즉, epoch=9, LR=2.44... 이다.

S를 파싱해서 이 정보들만을 추출해 보도록 하자.


구현

 

- 정규식을 이용하려면 모듈 re가 필요하다.

import re

 

- 정보를 담고 있는 문자열 S를 만든다.

S = '2022-07-28 14:06:24;[DEBUG]    Epoch 9 학습시작. LR=[2.4471741852423235e-05]'

 

- 추출하고 싶은 정보가 무엇인지, 정규식으로 표현한다.

regex = re.compile(r'Epoch (\d+)')

    . Epoch 이라는 문자열이 있고, 

    . \d 는 0 ~ 9까지의 숫자를 의미

    . \d+ 는 1개 이상의 숫자로 구성된 문자열을 의미

    . (\d+) 는 ( )는 내가 추출을 원하는 정보임을 표시

    . regex에는 추출하고자 하는 것이 무엇인지에 대한 정보가 담긴다.

 

- regex를 이용해서 S를 검색한다. 

matchobj = regex.search(S)

    . matchobj에는 추출 결과들이 담겨있다.

 

- matchobj에서 내가 원하는 정보만을 꺼내면 된다.

epoch = int(matchobj.group(1))

    . matchobj.group(1)은 추출된 것 중에서 첫 번째 정보를 의미한다.

    . int ( ...) 는 추출된 것이 문자열이기 때문에 정수로 변환

 

- 이번에는 LR 정보를 추출하기 위한 정규식을 만들어 보자

regex = re.compile(r'LR=\[(.+)\]')

    . \[, \]는 양 옆의 괄호 문자를 의미한다.

    . .(period)는 모든 문자를 의미

    . .+ : 1개 이상의 모든 문자.

 

- LR을 추출하는 코드는 위와 동일하다.

matchobj = regex.search(S)
lr = float(matchobj.group(1))

    . float( )는 추출된 문자열을 실수로 바꾸어주는 것이다.

 


아래는 regular expression(정규식)에서 사용되는 meta characters(메타 문자)들이다.

반응형
LIST

윈도우즈


  • Windows_key + D : 모든 창 최소화
  • Windows_key  + SHIFT + 화살표 좌우 : 선택된 윈도우를 좌우 스크린으로 이동 (멀티 스크린 사용할 경우)

 


Visual Studio Code


 

  • CTRL + ALT + 마이너스 키: 이전 위치로 이동
  • CTRL + SHIFT + 마이너스 키: 이전 위치로 이동 후 다시 원위치 이동
  • CTRL + W : 윈도우창 닫기
  • F12 : 함수, 변수 정의로 이동
  • 선택한 영역에서만 Find/Replace
    • Ctrl-H : Find/Replace 실행
    • Alt-L 혹은 Find in selection 선택

 

 

 

 

 

이미지출처: https://post.naver.com/viewer/postView.nhn?volumeNo=27467939&memberNo=22846622

반응형
LIST

C++ 프로그래밍 기초부터 완성까지 69개 강좌를 유튜브에 올렸습니다.

 

요즘 Python을 많이 사용하고는 있지만,

 

개발경력에 있어서 C++는 여전히 사랑받는 언어입니다.

 

C++를 처음부터 차근차근 배워보고 싶은 분을 강좌입니다.

반응형
LIST

'C++ 프로그래밍' 카테고리의 다른 글

5차시 객체 사용  (1) 2015.10.13
4차시 클래스  (0) 2015.10.13
3차시 메모리 동적할당, new와 delete  (0) 2015.10.13
2주차: Namespace, Reference변수  (0) 2015.09.15
1주차: C++언어의 특징  (1) 2015.09.15

+ Recent posts