2013-02-16 2 views
0

나는 현저하게 두 개의 문자열과 한 개의 전기를 가지고 있으며 다른 하나는 year_of_birth입니다.문자열에 추가 텍스트 삽입

전기의 내용은 다음과 같습니다

ABC ABC ABC ABC.

영국에서 태어났습니다. abc abc abc.

abc abc abc abc.

year_of_birth는 숫자입니다. 1920

내 disired 출력은 말 :

ABC ABC ABC ABC.

영국에서 출생 1920 년에서 태어났습니다. abc abc abc.

abc abc abc abc.

그래서 나는 단순히 태어난 키워드가 발견되면 1920에 을 주입하려는 및 A-Z의 문자 이후 있지만 구두점 전에.

어떻게하면됩니까?

감사합니다.

+0

어떻게 ** ** 1920 년 ** **을 얻을 수 있습니까? –

+0

문자열 작성 :' '% s의 영국에서 태어났습니다. abc abc '% 1920' 입력을 변경할 수 있다면 – JBernardo

+0

@JBernardo :'% d'을 (를) 말하지 않습니까? – Johnsyweb

답변

3
>>> import re 
>>> year_of_birth = 1920 
>>> re.sub('(?m)[bB]orn[^,.?!:;]+', '\g<0> in %d' % year_of_birth, content) 
'abc abc abc abc.\n\nBorn in England in 1920. abc abc abc.\n\nabc abc abc abc.' 

여기 [^,.?!:;]+는 문장이 아니다 아무것도 일치한다. (?m)은 구두점이 다음 줄에있는 경우 여러 줄을 나타냅니다.

1
import re 
re.sub(r'(Born.*?)\.', r'\1 in 1920.', bio)