思路:
正则表达式+ 切片操作
一、找出关键词的位置
二、利用字符串的切片功能
目前想到有三种情况:
1、当关键词位于开头时,从下标为0的开始切片
2、当关键词位于结尾时,切片取到最后一个字符
3、当关键词位于中间时,取前后指定位数字符
import re
string = 'The append method appends a DataFrame-like object at the end of the current DataFrame.append '
pattern = 'app'
num= 6 # 截取 关键词 前后 6 个字符
for m in re.finditer(pattern, string):
print(m.start(), m.end())
start=m.start()
end=m.end()
if m.start()-num<0: # 情况一 关键词位于开头
start=0
print(string[start:end+num])
elif m.end()+num >len(string): # 情况二 关键词位于结尾
end=len(string)-1
print(string[start-num:end])
else: # 情况三 关键词位于中间
print(string[start-num:end+num])
输出
4 7
The append me
18 21
ethod appends a
86 89
Frame.append