基本上我有两个字符串,一个是传记,另一个是year_of_birth。
传记内容是:
abc abc abc abc。
生于英格兰。 abc abc abc。
abc abc abc abc。
year_of_birth是一个数字。说1920年。
我的不满输出是:
abc abc abc abc。
1920年出生于英国 。 abc abc abc。
abc abc abc abc。
所以我只想在1920年注入 如果找到了生成关键字,并且在任何A-Z字符之后但在任何标点符号之前。
我该如何实现?
感谢。
答案 0 :(得分: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 :(得分:1)
import re
re.sub(r'(Born.*?)\.', r'\1 in 1920.', bio)