find 메소드와 슬라이싱을 통해 이메일 호스트를 추출할 수 있다. data = 'From stephen.marquard@uct.ac.za Sat Jan 5:09:14:16 2020' # 문자열에서 @ 이 위치한 포지션을 구한다. atpos = data.find('@') print(atpos) # @ 이 위치한 곳 부터 처음 발견된 공백의 포지션을 구한다. sppos = data.find(' ', atpos) print(sppos) # @ 다음문자부터 공백까지의 문자열 (이메일 호스트) 을 슬라이싱한다. host = data[atpos+1 : sppos] print(host) split 메소드를 활용한 방법도 있다. 공백 문자를 기준으로 문자열을 나누고, 다시 @ 을 기준으로 문자열을 나눈다. line ..
패턴 추출하기 import re x = 'My 2 Favorite numbers are 19 and 42' # x 문자열에서 0부터 9까지의 문자 중 하나, # 즉 정수가 하나 이상 반복되는 단어를 리스트로 반환 y = re.findall('[0-9]+', x) print(y) # 'A', 'E', 'I', 'O', 'U' 로 이루어진 패턴을 찾아 출력 # x 문자열에는 해당되는 패턴이 없으므로 빈 리스트를 반환 # 정규표현식에서는 대, 소문자 구분함 y = re.findall('[AEIOU]+', x) print(y) 탐욕적 방식의 패턴 찾기 만약 아래의 문장에서 '^F.+:' 패턴을 찾게 되면, x = 'From: Using the : character' - From: - From: Using the..
정규식(Regular Expression)은 특정규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 유효성 검사, 문자열 파싱 및 대체, 데이터 변환 그리고 웹 스크래핑까지 다양한 응용분야가 있다. 패턴 설명 ^ 라인의 처음을 매칭 $ 라인의 끝을 매칭 . 임의의 문자를 매칭 (와일드카드) \s 공백 문자를 매칭 \S 공백이 아닌 문자를 매칭 * 바로 앞선 문자에 적용되고, 0 혹은 그 이상의 앞선 문자와 매칭을 표기함. *? 바로 앞선 문자에 적용되고, 0 혹은 그 이상의 앞선 문자와 매칭을 탐욕적이지 않은 방법으로 표기함. + 바로 앞선 문자에 적용되고, 1 혹은 그 이상의 앞선 문자와 매칭을 표기함. +? 바로 앞선 문자에 적용되고, 1 혹은 그 이상의 앞선 문자와 매칭을 탐욕적이지 않..