320x100
import re
# 메타문자
# 메타문자는 특별한 의미를 가진 정규 표현식 문자들이다.
|
()
[]
.
*
+
?
^
$
(?P<이름>)
# 정규표현식 re 사용방법 1
# 문자열 내에 등장하는 패턴의 횟수를 세기
string = 'The quick brown fox jumps over the lazy dog.'
# 공백을 기준으로 string 변수에 담긴 값을 나누어서 list에 담아준다.
string_list = string.split()
# r은 원시문자열 표기법으로써 \, \t, \n같은 특수한 문자들을 따로 처리하지 않도록 한다는 의미다.
# 'The', re.I 는 The 라는 문자에 대해서 대소문자를 가리지 않고 잡아낸다. 라는 뜻이다.
# 즉, re.I 는 앞에 지정된 문자에 대해서 대소문자를 가리지 않고 집어 낸다. 라는 의미를 가지고 있다.
pattern = re.compile(r'The', re.I)
count = 0
# 이를 해석하자면 기본적으로 string_list에는 string에서 공백을 기준으로 split된 9개의 원소가 있다.
# 그것을 순서대로 한개씩 뽑아 내는 거다.
for word in string_list:
# 9개의 string_list에서 1개씩 나올때마다 pattern에 지정해 주었던 조건대로 대소문자에 상관없이 the 를 true값으로 출력한다.
if pattern.search(word):
count += 1
print(word)
print('Output #38: {0:d}'.format(count))
결과값
The
the
Output #38: 2
# 정규표현식 re 사용방법 2
# 문자열 내에서 발견된 패턴 출력하기
string = 'The quick brown fox jumps over the lazy dog.'
string_list = string.split()
pattern = re.compile(r'(?P<match_word>)The', re.I)
print('Output #39:')
for word in string_list:
if pattern.search(word):
print('{:s}'.format(pattern.search(word).group('match_word')))
# 3번째줄의 <match_word>라는 것을 지정해주고,
# 그것을 마지막 줄에서 그룹화 시켜준다는데
# 실질적인 출력은 되지 않고, 이것에 대해선 아직 잘 모르겠다.
결과값
Output #39:
# 문자열 내 'the'를 'a'로 대체하기
string = 'The quickbrown fox jumps over the lazy dog.'
string_to_find = r'The'
pattern = re.compile(string_to_find, re.I)
print('Output #40: {:s}'.format(pattern.sub('a', string)))
결과값
Output #40: a quickbrown fox jumps over a lazy dog.
300x250
'개발일지 > Python' 카테고리의 다른 글
pandas 판다스 기초 25 datetime 데이터 핸들링의 모든것 (0) | 2022.08.24 |
---|---|
python 파이썬 기초1 난수(random) 과 seed 활용, 정규분포 (0) | 2022.08.22 |
Python 기본용어 원리 (strip, split, join, upper, lower, capitalize) (0) | 2022.07.08 |
네이버 API {'error_code': '061', 'message': '/shop.json : Malformed URL (잘못된 형식의 호출 URL입니다.)'} (0) | 2022.06.16 |
비쥬얼 스튜디오 (vs code)에서 파이썬 파일 실행이 안될때. "<stdin>", line 1 (0) | 2022.06.14 |