웹사이트 검색

문자열에 다른 문자열이 포함되어 있는지 Python 확인


문자열 조작은 모든 프로그래밍 언어에서 공통적인 작업입니다. Python은 문자열에 다른 문자열이 포함되어 있는지 확인하는 두 가지 일반적인 방법을 제공합니다.

문자열에 다른 문자열이 포함되어 있는지 Python 확인

Python 문자열은 in 연산자를 지원합니다. 따라서 문자열이 다른 문자열의 일부인지 여부를 확인하는 데 사용할 수 있습니다. in 연산자 구문은 다음과 같습니다.

sub in str

"sub\ 문자열이 "str\의 일부이면 True를 반환하고 그렇지 않으면 False를 반환합니다. Python에서 in 연산자를 사용하는 몇 가지 예를 살펴보겠습니다.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')

if str2 in str1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

산출:

"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"

Python의 f 접두사 문자열에 익숙하지 않은 경우 Python 3.6에 도입된 문자열 서식 지정을 위한 새로운 방법입니다. 이에 대한 자세한 내용은 Python의 f-strings에서 읽을 수 있습니다.

in 연산자를 사용하면 내부적으로 __contains__() 함수를 호출합니다. 이 함수를 직접 사용할 수도 있지만 가독성을 위해 in 연산자를 사용하는 것이 좋습니다.

s = 'abc'

print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))

산출:

s contains a = True
s contains A = False
s contains X = False

find()를 사용하여 문자열에 다른 하위 문자열이 포함되어 있는지 확인

string find() 함수를 사용하여 문자열에 하위 문자열이 포함되어 있는지 확인할 수도 있습니다. 이 함수는 하위 문자열이 발견된 첫 번째 인덱스 위치를 반환하고 그렇지 않으면 -1을 반환합니다.

str1 = 'I love Python Programming'

str2 = 'Python'

str3 = 'Java'

index = str1.find(str2)
if index != -1:
    print(f'"{str1}" contains "{str2}"')
else:
    print(f'"{str1}" does not contain "{str2}"')

index = str1.find(str3)
if index != -1:
    print(f'"{str1}" contains "{str3}"')
else:
    print(f'"{str1}" does not contain "{str3}"')

산출:

"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"

GitHub 리포지토리에서 전체 Python 스크립트와 더 많은 Python 예제를 확인할 수 있습니다.