如何获取两个特定单词前后的所有字符串?

How to get all the string after and before two specific words?

我想替换“my;encoded;image:”之后的所有字符串(这是图像的 base64 数据)并且我想在单词“END”之前停止,但是下面的代码也正在替换两个字符串“my;encoded;image:”和“END”。有什么建议吗?

import re
re.sub("my;encoded;image:.*END","random_words",image,flags=re.DOTALL)

注意:一个简单的方法可能是使用替换,但我想在我的例子中使用正则表达式谢谢

您可以使用非贪婪正则表达式将字符串分成三组。然后用您的字符串替换第二组:

import re

x = re.sub(r'(.*my;encoded;image:)(.*?)(END.*)', r"my string", image)

print(x)

您可以在 Python 3.6 及更高版本中使用 f 弦:

replacement = "hello"
x = re.sub(r'(.*my;encoded;image:)(.*?)(END.*)', fr'{replacement}', image)