Python字符串中截取指定关键词的前后字符

思路:

正则表达式+ 切片操作

一、找出关键词的位置

二、利用字符串的切片功能

目前想到有三种情况:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>