在字符串中注入其他文本

时间:2013-02-16 03:38:19

标签: python regex

基本上我有两个字符串,一个是传记,另一个是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字符之后但在任何标点符号之前。

我该如何实现?

感谢。

2 个答案:

答案 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)