广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何查找所有子串位置
  • 462
分享到

python如何查找所有子串位置

python查找子串python子串位置查找子串位置 2023-01-03 12:01:17 462人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录python 查找所有子串位置方法1方法2Python小知识:查找子串问题查找子串in 操作符find函数index函数总结python 查找所有子串位置 方法1 python

python 查找所有子串位置

方法1

python 字符串中的find只能返回第一次出现的位置,可以利用find找出多有子串出现的位置:

def find_all(sub,s):
    index_list = []
    index = s.find(sub)
    while index != -1:
        index_list.append(index)
        index = s.find(sub,index+1)
    
    if len(index_list) > 0:
        return index_list
    else:
        return -1

方法2

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

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()) 

补充

1、str.find()函数:检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1。

str.find(substring, beg=0, end=len(string))

2、str.index()函数:跟find()方法一样,只不过如果str不在 string中会报一个异常。

str.index(substring, beg=0, end=len(string))

Python小知识:查找子串问题

查找子串

查找一个字符串中是否包含某个关键词(查找子串问题)是很常见的操作。比如:给定一句话s,查找s中是否包含关键词王嘉尔。

今天来说3个相关的方法,以及它们的区别和优缺点。

in 操作符

如果只是为了判断s中是否包含王嘉尔,最推荐的做法是用in或者not in操作符:

s = '王嘉尔小时候卖过猪'
print('王嘉尔' in s)

s2 = '王嘉尔小时候吃过猪'
print('王嘉尔' in s2)

in操作符返回True或者False,而且运行最快,是首选!

咱们加深一下,每一个Python的操作符背后都有一个魔法方法。当我们使用in操作符的时候,它调用的是__contains__方法。

如果我们自己定义一个类,也要支持in和not in运算符,只要实现__contains__方法就可以了。

find函数

s = '王嘉尔小时候卖过猪'
print(s.find('王嘉尔'))
print(s.find('王嘉尔') != -1)

s2 = '王嘉尔小时候吃过猪'
print(s2.find('王嘉尔'))
print(s2.find('王嘉尔') != -1)

运行结果:

0
True
-1
False

find函数返回子串的下标,如果找不到就返回-1。s中包含王嘉尔,返回下标0。我们可以通过比较返回值和-1来确定是否包含子串。

index函数

index函数和find类似,也是返回子串在父串中的下标:

s = '王嘉尔小时候卖过猪'
print(s.index('王嘉尔'))
print(s.index('王嘉尔') != -1)

运行结果是:

0
True

但是index和find有个大的差别,如果父串中没有包含子串,会报ValueError。

看下面的代码:

s2 = '王嘉尔小时候吃过猪'
print(s2.index('王嘉尔'))

运行结果是:

ValueError: substring not found

看起来index比较弱,为什么它还有存在的价值呢?因为index是序列(sequence)的方法,在字符串,列表,元组中都可以用,而find是字符串特有的函数。

小结一下:如果只是看是否存在,直接用in操作符;如果还要找出下标,用find不会报错,但是index可以应用的范围更广。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: python如何查找所有子串位置

本文链接: https://www.lsjlt.com/news/176470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何查找所有子串位置
    目录python 查找所有子串位置方法1方法2Python小知识:查找子串问题查找子串in 操作符find函数index函数总结python 查找所有子串位置 方法1 python...
    99+
    2023-01-03
    python查找子串 python子串位置 查找子串位置
  • python如何寻找主串中所有指定子串下标
    目录python寻找主串中所有指定子串下标python字符串常用操作查找修改判断总结python寻找主串中所有指定子串下标 该函数可实现显示字符串中指定子串所有下标(首字下标) de...
    99+
    2023-01-03
    python指定子串下标 python主串 python寻找子串下标
  • ubuntu如何查找文件所在位置
    可以使用`find`命令来查找文件所在位置。使用以下命令来在整个系统中查找文件:```find / -name 文件名```例如,要...
    99+
    2023-09-22
    ubuntu
  • Python怎么查找字符串中的所有数字
    今天小编给大家分享一下Python怎么查找字符串中的所有数字的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。findall在字...
    99+
    2023-06-08
  • Python怎么在字符串中找到正则表达式所匹配的所有子串
    这篇“Python怎么在字符串中找到正则表达式所匹配的所有子串”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么...
    99+
    2023-06-08
  • 如何使用Python的find()函数查找字符串中的子串
    如何使用Python的find()函数查找字符串中的子串在Python的字符串处理中,经常需要查找字符串中的子串。Python提供了find()函数来帮助我们实现这个功能。本文将介绍如何使用Python的find()函数查找字符串中的子串,...
    99+
    2023-11-18
    Python 字符串查找 find()
  • linux如何查找文件位置
    这篇文章主要介绍“linux如何查找文件位置”,在日常操作中,相信很多人在linux如何查找文件位置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux如何查找文件位置”...
    99+
    2023-01-04
    linux
  • python如何查找列表中元素的位置
    目录如何查找列表中元素的位置问题描述输入格式python中list()查找方法list五种查找方式函数EXA如何查找列表中元素的位置 问题描述 给出一个包含n个整数的数列,问整数a在...
    99+
    2022-11-11
  • php如何查找字符串是第几位
    今天小编给大家分享一下php如何查找字符串是第几位的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。查找方法:1、用strpos...
    99+
    2023-06-30
  • jquery如何查询所有子元素
    本篇内容主要讲解“jquery如何查询所有子元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何查询所有子元素”吧! ...
    99+
    2022-10-19
  • eclipse如何查看文件所在位置
    要查看文件在Eclipse中的位置,可以使用以下方法:1. 在Eclipse的导航栏中,点击"窗口"(Window)菜单,然后选择"...
    99+
    2023-09-27
    eclipse
  • python如何查找列表中所有元素的出现
    小编给大家分享一下python如何查找列表中所有元素的出现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查找列表中所有元素的出现先前的代码将提供最频繁的值。 如果...
    99+
    2023-06-27
  • 如何查找所有div下的p元素
    这篇文章主要讲解了“如何查找所有div下的p元素”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何查找所有div下的p元素”吧...
    99+
    2022-10-19
  • 如何在MySQL中给定父行找到所有子行
    这篇文章将为大家详细讲解有关如何在MySQL中给定父行找到所有子行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一.需求找到直接及简介(即JONES下属的下属)为JONES工作的所有员工。J...
    99+
    2023-06-06
  • Linux系统如何精准查找文件位置
    这篇文章将为大家详细讲解有关Linux系统如何精准查找文件位置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux系统最大的一个特点就是一切皆为文件,那么这么多的文件怎样在Linux系统...
    99+
    2023-06-28
  • python如何去掉字符串所有空格
    这篇文章给大家分享的是有关python如何去掉字符串所有空格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python去掉字符串所有空格的方法:1、使用strip方法去除字符串开头或者结尾的空格;2、使用repl...
    99+
    2023-06-06
  • Shell脚本如何实现查找字符串中某字符最后出现的位置
    这篇文章将为大家详细讲解有关Shell脚本如何实现查找字符串中某字符最后出现的位置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)...
    99+
    2023-06-09
  • python如何获取目录下所有子目录
    Python可以使用os模块来获取目录下的所有子目录。方法一:使用os.walk()函数os.walk()函数可以遍历指定目录下的所...
    99+
    2023-09-27
    python
  • Python如何提高查找字串的运行速度
    这篇文章主要介绍“Python如何提高查找字串的运行速度”,在日常操作中,相信很多人在Python如何提高查找字串的运行速度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何提高查找字串的运行速度...
    99+
    2023-06-17
  • python如何查看类的所有属性
    在Python中,可以使用内置函数dir()来查看一个类的所有属性。dir()函数返回一个列表,包含指定对象的所有属性和方法。 例如...
    99+
    2023-10-22
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作