반응형
Python에서 문자열을 구분자로 분할할 때 str.split 을 사용해서 분리한다
그런데, 구분자가 여러개일 때의 분리가 필요해서 찾아보게 되었다.
re.split 사용법
import re
result = re.split(pattern, string, maxsplit=0, flags=0)
re를 import 해준다
pattern : 구분자 패턴
string : 분할할 문자열
maxsplit=0 : 수행할 최대의 분할 수로, 기본값은 0(생략가능)
flags=0 : 선택적 플래그 인자(생략가능)
여러 구분자로 나누기
ex)
text = "가1나다라1마바사2아자차1카타"
print(text.split("1"))
print(re.split("1|2",text))
결과값
['가', '나다라', '마바사2아자차', '카타']
['가', '나다라', '마바사', '아자차', '카타']
구분자는 "|" 로 나눌 수 있다
혹은 [] 대괄호 안에 넣어서 구분할 수도 있다
text = "가1나다라1마바사2아자차1카타"
print(text.split("1"))
print(re.split("[12]",text))
결과값
['가', '나다라', '마바사2아자차', '카타']
['가', '나다라', '마바사', '아자차', '카타']
공백으로 나누기
text = "가 나다라 마바사 아자차 카타"
print(text.split(" "))
print(re.split(r"\s",text))
print(re.split(r"\s+",text))
결과값
['가', '나다라', '', '', '', '마바사', '', '아자차', '카타']
['가', '나다라', '', '', '', '마바사', '', '아자차', '카타']
['가', '나다라', '마바사', '아자차', '카타']
\s 문자열 패던을 입력하면 공백으로 나눌 수 있다
\s+를 사용하면 공백이 여러개라도 하나의 공백으로 처리해서 나눌 수 있다!
maxsplit
text = "가 나다라 마바사 아자차 카타"
print(re.split(r"\s+",text, maxsplit=1))
print(re.split(r"\s+",text, maxsplit=2))
print(re.split(r"\s+",text, maxsplit=3))
결과값
['가', '나다라 마바사 아자차 카타']
['가', '나다라', '마바사 아자차 카타']
['가', '나다라', '마바사', '아자차 카타']
maxsplit 은 분할을 제한한다
값이 1이면 2개로 분할, 2이면 3으로 분할... 이런식으로 분할은 해당 값 만큼 분할 되어서 나온 결과값은 값+1
flag는 사실 뭘 하는건지 모르겠다...
re.split을 이용해서 크롤링 값을 나눠서 저장하는거에 유용하게 사용했다
반응형
'study > python' 카테고리의 다른 글
[Python] pip 업그레이드 오류 해결하기 (0) | 2024.11.08 |
---|---|
[python] 가상 환경 활성화/비활성화 하기 (0) | 2024.11.07 |
python 재귀 제한 해제 (0) | 2022.09.15 |
[python] 2차원 배열 입력받기 (0) | 2021.08.16 |
python) list append() 와 extend() 비교하기 (0) | 2021.08.01 |