Python - 문자열 찾기

문자열에서 특정 문자나 문자열을 찾고, 찾은 문자열의 Index를 리턴하는 함수를 소개합니다.

1. find() : 문자열에서 문자열 찾기

find(str)는 문자열에서 인자로 전달된 문자열을 찾고 그 문자열의 index를 리턴합니다. 대소문자를 구분하며, 찾는 문자열이 없을 때는 -1을 리턴합니다.

str = "Hello, World, Python"

print(str.find('o'))

print(str.find('World'))

print(str.find('world'))

Output:

4
7
-1

2. rfind() : 반대 방향으로 문자열 찾기

rfind()find()와 사용 방법이 정확히 동일하지만, 문자열을 찾는 방향이 문자열의 끝에서 앞쪽이라는 것만 다릅니다. 즉, rfind()find()의 반대방향으로 문자열을 찾습니다.

아래 예제들은 문자열 끝에서 문자열 앞쪽 방향으로 탐색을 하고, 찾은 문자열의 Index를 리턴합니다.

str = "Hello, World, Python"

print(str.rfind('o'))

print(str.rfind(','))

print(str.rfind('World'))

print(str.rfind('world'))

Output:

18
12
7
-1

3. index() : 문자열에서 문자열 찾기

index()find()와 사용 방법이 거의 동일합니다. 문자열을 찾고, 찾은 문자열의 index를 리턴합니다.

str = "Hello, World, Python"

print(str.index('o'))

print(str.index('World'))

Output:

4
7

차이점은, 찾는 문자열이 없을 때 -1을 리턴하지 않고 아래와 같이 ValueError를 발생시킵니다. 예외에 대한 처리가 필요합니다.

str = "Hello, World, Python"

print(str.index('world'))

Output:

/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
  File "/home/js/IdeaProjects/python-ex/find.py", line 7, in <module>
    print(str.index('world'))
ValueError: substring not found

4. rindex() : 반대 방향으로 문자열 찾기

rindex()index()와 사용 방법이 동일합니다. 대신 문자열의 끝에서 앞쪽으로 탐색을 합니다.

str = "Hello, World, Python"

print(str.rindex('o'))

print(str.rindex('World'))

Output:

18
7

그리고 find()와 다르게, 찾는 문자열이 없을 때 -1을 리턴하지 않고 ValueError를 발생시킵니다.

print(str.rindex('world'))

Output:

/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
  File "/home/mjs/IdeaProjects/python-ex/find.py", line 3, in <module>
    print(str.rindex('world'))
ValueError: substring not found
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha