Python에서
찾는 문자열, 일치하는 문자열이 있는지 알아보려면 어떻게 할까요? 아래에서 자세히 알아봅니다.
Python에서 특정 문자가 존재하는 찾기 위한 방법으로 두 가지를 생각할 수 있습니다. 첫번째로 문자 타입에
in 키워드를 사용하는 것이 가능합니다. 그리고 find() 함수를 사용하는 방법입니다.
- 문자열에 in 키워드로 찾기
- find() 함수를 사용하기
만약 찾은 위치가 필요한 경우 find()를 사용하고 그 여부만 확인하려면 in을 사용하는 것이 일반적입니다. 먼저
in 키워드를 사용해 찾는 것을 예제를 통해 자세히 알아봅니다.
# 일치하는 문자열 찾기, Python
아래 예제는 변수 mySite에서 webisfree라는 텍스트가 있는지 알아보는 예제입니다. 문자열을 변수 mysite에 저장하고 if문을 사용하여 가조 있는 경우에만 Okay를 출력하는 방법입니다.
mysite = 'Site name is webisfree.'
if 'webisfree' in myname:
print('Okay')
위 코드를 실행하면 찾을 문자 webisfree가 실재로 존재하므로 Okay라는 텍스트가 출력되게됩니다. 이처럼 간단한 방법으로 in 키워드를 사용하면 문자열 검색을 통해 확인할 수 있습니다.
! 문자열에서 일치하는 문자 찾기 예제
한가지 예제를 더 알아봅니다. 아래는 주소에서 호스트가 .com이라는 문자를 가지는지 알아봅니다.
myHost = "webisfree.com"
search = ".com"
if search in myHost:
print("Okay")
else:
print("None")
위 예제에서는 변수 myHost에서 해당 문자 search가 존재하는지 확인한 후 해당하는 메시지를 출력합니다. 실제 동일한 텍스트가 존재하므로 "Okay"가 출력될 것입니다.
# find() 함수를 사용하여 문자 찾기
이번에는 find() 함수를 사용하는 방법입니다. 위의 방법이 더 간단해보일 수 있으나
find()를 사용하면 존재 여부에 따라 해당하는 위치값을 추가로 반환하는 장점이 있습니다.
string.find(search, start, end)위에서 시작점과 끝나는 점을 지정하는 2, 3번째 인자값은 옵션사항입니다. 그럼 아래 예제를 봐주세요.
myStr = "abcdefghijklmn"
search = "e"
indexNo = myStr.find(search)
print indexNo
이제 위의 코드의 실행하면 다음과 같이 해당하는 위치값을 나타나게됩니다. 시작점부터 0을 기준으로 합니다.
4
만약 찾는 값이 없는 경우 어떻게 될까요? 이 경우 숫자 -1을 반환합니다. 아래의 예제를 봐주세요.
! 찾는 값이 없는 경우의 결과
아래에서는 해당 문자열에 t라는 문자를 찾아보려합니다.
myStr = "abcdefghijklmn"
search = "t"
result = myStr.find(search)
print result
이번에는 결과가 어떻게 나타날까요?
-1
예상대로 -1의 음수가 나타났습니다. 이처럼 찾는 값이 없는 경우 -1을 반환합니다. 만약 이를 if문에 사용한다면 아래처럼 사용 가능하겠습니다.
if result == -1:
print "None"
! 인자 Arguments를 사용한 예제보기
만약 시작점 또는 끝나는점을 정하는 경우에 어떻게 나타나는지 보겠습니다.
test = '1234567890'
test.find('5', 1)
test.find('5', 5)
test.find('5', 4)
결과는 아래와 같습니다.
4
-1
4
즉 시작점과 끝점은 찾을 위치만 지정하고 만약
찾은 경우에 반환되는 위치값은 언제나 맨 처음 문자열의 시작점을 기준으로 반환하는 것을 확인할 수 있습니다.
# 마치면서
문자열에 특정 텍스트를 찾는 방법은 매우 자주 사용됩니다. 앞에도 언급했지만 반드시 해당 위치가 필요한 경우가 아니라면 쉽게 in을 사용하는 방법이 가장 좋을 것입니다. 이처럼 Python은 다른 언어들보다 간단하고 더 쉽게 이해할 수 있는 함수들이 많이 존재합니다.