본문 바로가기
Language&Framework&Etc/Python

파이썬 정규식 연습장

by 머리올리자 2021. 12. 1.

학습 및 테스트를 위한 데이터 정리 중 정규식을 쓰는데 계속 잊어버려 따로 정리하려 한다.

 

우선 내가 정리하려는 데이터의 이름들은 아래와 같다.

 

x1_002_1_0
x1_002_2_0
x1_002_3_0
x1_002_4_0
x1_002_5_0
x1_002_6_0

....

x2_345_6_0

 

여기서 나는 

빨간색 index들을 training set으로 쓰고

파란색 index들을 validation set으로 쓰고

보라색 index들을 testing set으로 쓰려고 한다.

 

물론 파이썬 반복문을 사용해서 index로 접근할 수 있지만 편하게 정규식을 사용하려고 한다.

 

정규식표현 할 때 아래 사이트를 이용하면 미리 expression을 시험해볼 수 있다.

 

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

training set을 정규식으로 가져오는 걸 해보자.

(training set만 해도 validation과 testing set은 안해도 알 수 있음)

 

위 빨간색 파일들을 가져오는 표현은 아래와 같이 만들 수 있다.

 

f[\d]_[\d]+_([1-4])_0

 

p = re.compile("f[\d]_[\d]+_([1-4])_0")

그런데 전체 파일들은 리스트 형식으로 되어 있어 findall 대신 아래 명령어를 사용하려 새로운 리스트로 만들었다.

 

train_list = list(filter(p.match, ori_list)) # ori_list는 탐색할 전체 파일 리스트