본문 바로가기

Languages/Python

[파이썬 101] 문자열 매칭 메소드 (in, find, rfind, index, rindex startswith, endswith)

728x90

in

hangeul = "가나다라마바사가"

print('가나다' in hangeul)             # True
print('아자차' in hangeul)             # False

 

- 문자열 안에 특정 문자열이 포함되는지 여부를 True와 False로 반환

 

 

 

find()

hangeul = "가나다라마바사가"

print(hangeul.find('가'))        # 0
print(hangeul.find('나'))        # 1
print(hangeul.find('다'))        # 2
print(hangeul.find('하'))        # -1
print()

print(hangeul.find('다', 3))     # -1
print(hangeul.find('라', 3))     # 3
print()

print(hangeul.find('다', 1, 5))  # 2
print(hangeul.find('사', 1, 5))  # -1
print(hangeul.find('다', 1, 2))  # -1
print()

print(hangeul.find('가나다'))     # 0
print(hangeul.find('가나라'))     # -1

 

- {찾을 문자열}.find({찾는 문자열}, {시작 인덱스}, {종료 인덱스})

- 찾았을 경우 그 인덱스를, 못찾을 경우 -1를 반환

- 중복이 있을 경우 첫 번째 패턴의 인덱스 반환

 

 

 

rfind()

hangeul = "가나다라마바사가"

print(hangeul.find('가'))             # 0
print(hangeul.rfind('가'))            # 7
print()

print(hangeul.rfind('마바사', 2))     # 4
print(hangeul.rfind('가', 0, 8))      # 7

 

- find()와 같지만 문자열의 마지막 부터 찾음

- 중복이 있을 경우 마지막 패턴의 시작 인덱스 반환

 

 

 

index()

hangeul = "가나다라마바사가"

print(hangeul.find('가'))             # 0
print(hangeul.index('가'))            # 0
print()

print(hangeul.index('가나다', 0))     # Exception
print(hangeul.index('가나다', 2))     # 0

 

- find()와 유사하지만 지정 문자열이 없는 경우 Exception 반환

- tuple과 list에서도 사용할 수 있음

 

 

rindex()

hangeul = "가나다라마바사가"

print(hangeul.index('가'))             # 0
print(hangeul.rindex('가'))            # 7
print()

print(hangeul.rindex('가나다', 1))     # Exceptino

 

- rfind()와 유사하지만 문자열을 찾지 못한 경우 Exception

 

 

startswith()

hangeul = "가나다라마바사"

print(hangeul.startswith('가나다'))               # True
print(hangeul.startswith('나다', 1))              # True
print(hangeul.startswith('나다', 0))              # False
print()

print(hangeul.startswith(('나다', '가나'), 0))    # True

 

- 특정 문자열로 시작하는지 여부를 True/False로 반환

- 튜플 형태로 다양한 문자열을 OR 조건으로 확인할 수 있음

 

 

 

endswith()

hangeul = "가나다라마바사"

print(hangeul.endswith('마바사'))                  # True
print(hangeul.endswith('마바사', 1))               # True
print(hangeul.endswith('마바사', 0, 4))            # False
print()

print(hangeul.endswith(('마바사', '가나다'), 0))   # True

 

- 특정 문자열로 끝나는지 여부를 True/False로 반환

- 튜플 형태로 다양한 문자열을 OR 조건으로 탐색 가능

 

 

참조
 - Python documentation
 - Homezzang
반응형