[python] 문자열을 구분자 기준으로 자르기(전화번호 분류)




💡 팁 find(str, idx) 함수는 여기를 읽어주세요.

💡 팁 list.append() 함수는 여기를 읽어주세요.

💡 팁 슬라이스 str[idx1, idx2] 는 여기를 읽어주세요.




1. find(str, idx) 함수를 통해 기준자 위치를 찾는다

  • while문과 find() 함수를 조합하여 target 문자가 없을 때까지(index=-1) 찾습니다.

    1
    2
    3
    4
    while True:
        index = str.find(target, index+1)  #인텍스로 문자위치 찾기
        if index == -1:
            break
    cs



2. list.append() 함수를 통해 기준자 위치를 기록한다

  • 빈 리스트를 만들고 find() 함수를 통해 찾은 index 위치를 누적 기록합니다.

    1
    2
    3
    list=[]
     
    list.append(index)
    cs



3. 슬라이스 str[idx1, idx2] 를 통해 문자를 자른다

  • 0번 인덱스 부터 구분자가 있는 위치의 인덱스까지 slicing 합니다.
  • 반복할 시에는 시작 위치(j)를 끝난 위치(i)+1로 하여 검색합니다.

    1
    2
    3
    4
    5
    #구분자를 기준으로 문자열 자르기
    j=0
    for i in list:
        print(str[j:i])    #슬라이스
        j = i+1
    cs




전체 스크립트
    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
str = '123-456-789-abcd-efghi'      #문자열
target='-'                          #구분자
 
#List에 문자열에 구분자의 위치 기록
index=-1
list=[]
while True:
    index = str.find(target, index+1)  #인텍스로 문자위치 찾기
    if index == -1:
        break
    list.append(index)
 
#List에 문자열의 전체 길이 기록
list.append(len(str))
 
#구분자를 기준으로 문자열 자르기
j=0
for i in list:
    print(str[j:i])    #슬라이스
    j = i+1
cs

댓글 쓰기

0 댓글