[python] 문자열 속 특정 문자 찾기
조회수 6610회
infile=open("python_07_05.txt",'w')
words="aa"
while(words!="Q"):
words=input()
#words.split()
word=input()
if words.find(word):
infile.write("find word : "+word)
infile.close()
outfile=open("python_07_05.txt",'r')
text=outfile.read()
print(text)
outfile.close()
다음과 같은 코드에서 words에 "I heard that you're settled down"같은 데이터를 입력하고 word 에 you를 입력해서 검색했을떄 검색이 안되게 하는 방법이 있을까요? you're을 한 단어로 인식해서 you만 검색하면 검색이 안되게 하고 싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
우선 아래 코드는 잘못된 코드 입니다.
if words.find(word):
find 함수는 문자열을 찾아 position을 return 해주는데, 찾지 못한 경우 -1을 return 합니다.
False : 0
True : 0 이 아닌 모든 수
위와 같이 -1은 True입니다.
즉, 찾지 못한 경우에도 if block 내부가 실행되는 것이죠.
의도한대로 찾은 경우에만 if block 내부가 실행되도록 하려면 아래와 같이 코딩해야 합니다.
if words.find(word) >= 0:
you 와 you're 를 구분해서 찾고 싶은 경우 정규표현식(Regular Expression)을 쓰면 해결이 되지만 보다 간단한 방법으로는 찾고자 하는 문자열 앞뒤로 공백을 주면 구현 가능합니다.
find 할 때 word 앞 뒤로 공백을 넣고 해보세요.
아래와 같이 하면 you're는 찾지 못합니다.
if words.find(" you ") >= 0: print("find word")
추가)
아래 코드 참고하세요
words = "I heard that you're settled down" word = "you" if words.find(" " + word + " ") >= 0: print("find word")
나머지 부분은 조금만 고민하시면 충분히 스스로 하실 수 있으실거에요
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력