파이썬에서 문자열의 특정 부분을 변경하는 방법을 알아 내려고하고 있습니다. 텍스트 처리와 파이썬에서 매우 초보자입니다. 아래 코드를 생각해 내는데 2 시간이 걸렸지 만 작동하지 않습니다. 이유를 말해 주실 수 있습니까?문자열 찾기 및 바꾸기
나는 다음을 수행해야 б 단어 слово -> слово N [б] 단어
다음내가 지금까지 무엇을 가지고 :
: 입력 파일에서# f is the input file, unformatted, anouns is the output file. Right now i get anouns=f,
# i.e. no changes are made to the lines written into anouns.
def toNoun(matchobj):
if matchobj.group(0) == ' б ': return ' N[б] '
elif matchobj.group(0) == ' д ': return ' N[д] '
elif matchobj.group(0) == ' в ': return ' N[в] '
else: return 'N[й]'
lines = f.readlines() # list of lines
for line in lines:
if re.match(ur"(?u)^.* ([бдв]|й){1} .*", line):
anouns.write(re.sub(' [бдв]|й ',toNoun,line))
aбаде й Ewigkeit F
aбат д 알파벳 N
aвст рихо в Österreicher의 m
aга д Wiege
aгар д Gravieren F, N, Schnitzerei
aгархо в 슈니의 m, Graveur의 m, дечиг агархо Holzschnitzer의 m
을'toNoun' 방법 F body가 들여 쓰기가 적절하게 보이지 않습니다. 코드에 올바르게 붙여 넣었습니까? 아니면 어떻게 작성 했습니까? –
질문에 변경되었습니다. 내 코드에 맞습니다. – Ina
당신 reg 열 패턴이 맞는지 확인하고 싶은 경우 파일 몇 줄을 붙여 넣으십시오. –