Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在字符串中注入附加文本_Python_Regex - Fatal编程技术网

Python 在字符串中注入附加文本

Python 在字符串中注入附加文本,python,regex,Python,Regex,基本上我有两条线,一条是传记,另一条是出生年份 传记内容如下: 美国广播公司 出生于英国。美国广播公司 美国广播公司 出生年份是一个数字。比如说1920年 我需要的输出是: 美国广播公司 1920年出生于英国。美国广播公司 美国广播公司 因此,我只想在1920年注入,如果找到born关键字,在任何A-Z字符之后,但在任何标点之前 我怎样才能做到这一点 谢谢。>>重新导入 import re re.sub(r'(Born.*?)\.', r'\1 in 1920.', bio) >>>出生年份=

基本上我有两条线,一条是传记,另一条是出生年份

传记内容如下:

美国广播公司

出生于英国。美国广播公司

美国广播公司

出生年份是一个数字。比如说1920年

我需要的输出是:

美国广播公司

1920年出生于英国。美国广播公司

美国广播公司

因此,我只想在1920年注入如果找到born关键字,在任何A-Z字符之后,但在任何标点之前

我怎样才能做到这一点

谢谢。

>>重新导入
import re
re.sub(r'(Born.*?)\.', r'\1 in 1920.', bio)
>>>出生年份=1920年 >>>re.sub(“(?m)[bB]orn[^,.?!:;]+”,“\g在%d中的出生年份,内容) 'abc.\n\n 1920年出生于英国。abc.\n\n abc'
这里的
[^,.?!:;]+
匹配的是任何非标点符号。 此外,
(?m)
表示多行,以防标点符号位于下一行。

>导入re
>>>出生年份=1920年
>>>re.sub(“(?m)[bB]orn[^,.?!:;]+”,“\g在%d中的出生年份,内容)
'abc.\n\n 1920年出生于英国。abc.\n\n abc'
这里的
[^,.?!:;]+
匹配的是任何非标点符号。
另外,
(?m)
表示多行,以防标点符号在下一行。

如何获得1920年的字符?使用字符串格式:
“出生于英国%s。”。abc'%1920
如果可以更改input@JBernardo:您是说
%d
?@JBernardo文本来自数据库,可能不包含Born…您应该提供所有
Born..
行的示例,因为可能存在破坏regexp的“位置”。夸大“出生在美国”(布鲁斯?)会使它失败。假设您知道您的数据,因此您可能会在问题中涉及到它。您如何获得1920年的数据?请使用字符串格式:
“出生于英国%s。”。abc'%1920
如果可以更改input@JBernardo:您是说
%d
?@JBernardo文本来自数据库,可能不包含Born…您应该提供所有
Born..
行的示例,因为可能存在破坏regexp的“位置”。夸大“出生在美国”(布鲁斯?)会使它失败。假设你知道你的数据,所以你可以在你的问题中涵盖它。
>>> 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.'