首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python字符串操作--寻找所有匹配的位置

Python字符串操作--寻找所有匹配的位置

作者头像
生信交流平台
发布2020-08-06 14:23:15
发布2020-08-06 14:23:15
8.2K00
代码可运行
举报
运行总次数:0
代码可运行

今天小编跟大家分享一下,如何从一个字符串中找到所有匹配的子字符串的位置。例如我们有下面这一句话,我们需要从中找到所有‘you’出现的位置。

代码语言:javascript
代码运行次数:0
运行
复制
You said I was your life. Are you still alive when you lost it?

下面给出两种方法

1. 使用find函数来实现

代码语言:javascript
代码运行次数:0
运行
复制
def find_all(string, sub):
    start = 0
    pos = []
    while True:
        start = string.find(sub, start)
        if start == -1:
            return pos
        pos.append(start)
        start += len(sub)


print(find_all('You said I was your life. Are you still alive when you lost it?', 'y'))

string里面存了完整的字符串,find函数有两个参数,第一个参数sub,是需要寻找的子字符串,start是从string的什么地方开始寻找sub。找到之后将位置信息保存到pos中。然后start往后移动一个sub的长度,开始寻找第二个匹配的位置,一直到返回-1,证明找不到了,就返回pos,里面保存了所有sub的位置信息。

2.使用re包来实现

代码语言:javascript
代码运行次数:0
运行
复制
import re

string = 'You said I was your life. Are you still alive when you lost it?'
pattern = 'you'
for m in re.finditer(pattern, string):
    print(m.start(), m.end())

直接通过循环来实现,然后返回找到的pattern的起始位置和终止位置。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档