Python 如何在字符串中的另一个字符周围获得一些字符?

Python 如何在字符串中的另一个字符周围获得一些字符?,python,regex,string,Python,Regex,String,我有: Lorem Ipsum只是印刷和排版的虚拟文本 工业。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它拼凑成一本样本书。Lorem的标准块 自1500年代以来使用的Ipsum如下所示,供感兴趣者参考。 第1.10.32节和第1.10.33节摘自 西塞罗也被复制成了它们的原形 我想搜索1500s,然后选择它周围的一些字符,比如:从1500s开始,当未知的出现时。考虑到我正在搜索for循环,试图在一个很长的字符串中找到所有的1500s

我有:

Lorem Ipsum只是印刷和排版的虚拟文本 工业。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它拼凑成一本样本书。Lorem的标准块 自1500年代以来使用的Ipsum如下所示,供感兴趣者参考。 第1.10.32节和第1.10.33节摘自 西塞罗也被复制成了它们的原形

我想搜索
1500s
,然后选择它周围的一些字符,比如:
从1500s开始,当未知的
出现时。考虑到我正在搜索for循环,试图在一个很长的字符串中找到所有的
1500s
。因此,下一个循环将查找:
因为1500秒被复制,所以使用了

我正在使用正则表达式查找子字符串:

substring = re.findall('1500s', string)

但是如何选择它周围的大约20个字符呢?

正如cricket_007所说,您可以尝试使用
{20}
作为正则表达式模式的书头

substring = re.findall('.{0,20}1500s.{0,20}', s)
这将在字符串的开始/结束处搜索“1500”。我把他们分组只是为了整理正则表达式


嗯,
{20}
是您想要的任意20个字符的表达式?当搜索字符串显示得太靠近文本的开头或结尾时,此操作将失败;我会用
{0,20}
代替。
 r"(.{20})?(1500)(.{20})?" g