python 정규표현식 split()

박은정·2021년 7월 28일
0

TIL

목록 보기
9/72

코드1

import re

정규표현식 = r'([a-zA-Z]+) : (Wd+)'

문자열 = 'name : leehojun, age : 10, height : 180, email : paul-lab@naver.com'

결과 = re,split(정규표현식, 문자열)

print(결과)

'''
코드실행결과
['name : leehojun. ',
'age',
'10',
', ',
'height',
'180',
', email : paul-lab@naver.com' ]
'''

split() 메서드의 리턴값

패턴대로 문자열을 분할한다

  1. 매칭되는 것은 'age',, '10',, 'height',, '180',이렇게 4개 뿐이고
  2. 나머지는 분할해서 리스트의 앞뒤로 넣어줬다

코드2

코드1에서 패턴을 ,로 수정하면 아래와 같이 결과가 다르게 나온다

import re

정규표현식 = r','

문자열 = 'name : leehojun, age : 10, height : 180, email : paul-lab@naver.com'

결과 = re,split(정규표현식, 문자열)

print(결과)

'''
코드실행결과
['name : leehojun' ,
 ' age : 10' ,
 ' height : 180' ,
 ' email : paul-lab@navr.com']
'''

패턴 ,을 기준으로 문자열 분할

, 를 기준으로 나눠준 것(split) 을 확인할 수 있다
하지만 문자열 사이에 공백이 있는 것을 보니 깔끔하게 split되지는 않았다고 알 수 있다

split() 메서드 최대분할개수

아래와 같이 패턴대로 문자열을 최대 2개까지만 분할한다면

'''
split(정규표현식, 문자열, [최대분할개수])
최대 2개로 분할한다면
'''
결과 =  re.split(정규표현식, 문자열, 2)

'''
실행결과
['name : leehojun' , ' age : 10' , ' height : 180, email : paul-lab@naver.com']
'''
height : 180, email : paul-lab@naver.com

최대분할개수를 2로 지정해서 2개까지로만 분할되서
이 문자열이 코드1 에서는 두개로 분할되서 나왔는데
코드2 에서는 하나로 뭉쳐서 나오는 것을 확인할 수 있다

0개 name : leehojun
1개 age : 10
2개 height : 180, email : paul-lab@naver.com

profile
새로운 것을 도전하고 노력한다

0개의 댓글