2016-10-12 2 views
0

저는 지루한 것들을 파이썬으로 자동화하고 연습 프로젝트 중 하나에 문제가 있습니다.파이썬 정규식 하위가 작동하지 않습니다.

8 장에는 txt 파일을 읽고 특정 단어를 식별하고 대체 단어를 묻는 단어를 찾은 프로그램을 만드는 프로젝트가 있습니다. 어떤 이유로 든 대체에 문제가있어 그 이유를 알 수 없습니다.

import re, os 

# Convert text file to string 
textString = open('C:\\Users\\me\\Desktop\\madlib.txt', 'r') 
content = str(textString.read()) 
i = 2 

while i == 2: 
    #Search string for expressions ADJECTIVE, NOWN, ADVERB, and VERB. 
    keyRegex = re.compile(r'ADJECTIVE|NOUN|ADVERB|^VERB') 
    keyword = keyRegex.search(content) 

    #Upon finding keyword, using if statements test the type of keyword 
    if keyword.group() == 'ADJECTIVE': 
     print('Please enter an adjective:') 
     replacement = str(input()) 
     keyRegex.sub(replacement, content) 
     print(content) 
----snip---- 

그래서 나는 (계속 그것을 끝낼 수있는 방법이있다), 다음 키워드를 검색 시작을 while 루프를 설정, 첫 번째 부분에서 파일을 읽습니다. 예를 들어, 단어 ADJECTIVE를 발견하면 형용사를 요구합니다. 그런 다음 교체품을 입력하면 이것이 문제가되는 곳입니다.

'content'문자열의 ADJECTIVE 단어는 실제로 대체되지 않습니다. 왜 이런거야?

답변 해 주셔서 감사합니다.

답변

0

re.sub()은 저장하지 않는 새 문자열을 반환합니다. 다른 많은 파이썬 메소드와 마찬가지로 변경하고자하는 경우 새로운 결과를 변수에 저장해야합니다.

content = keyRegex.sub(replacement, content)