精华内容
下载资源
问答
  • 在字符串中查找指定字符串python
    千次阅读
    2022-03-07 15:48:33

    问题: 找出下面字符中的’l’

    text = 'hello world!'
    

    方法1: 使用index查找

    index = text.index('l')
    

    index每次只回返回字符串中第一个待查找字符的位置索引,要找出所有的待查找字符需要用while循环一直查找

    方法二: 使用re.finditer

    import re
    search = 'l'
    numList = [m.start() for m in re.finditer(search, text]
    
    更多相关内容
  • 本文实例讲述了python实现在字符串中查找字符串的方法。分享给大家供大家参考。具体如下: 这里实现python在字符串中查找字符串,如果找到则返回子字符串的位置,如果没有找到则返回-1 S = '...
  • 本文实例讲述了python实现查找两个字符串中相同字符并输出的方法。... 您可能感兴趣的文章:python实现在字符串中查找字符串的方法python判断字符串是否包含子字符串的方法python无限生成不重复(字母,数
  • 编写一个程序,能当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。 import os class SearchFile(object): def __init__(self,path='.'): self._path=path self...
  • 字符串与列表查找字符串查找函数列表查找函数 字符串查找函数 字符串查找函数 find 查找,返回从左第一个指定字符的索引,找不到返回-1 rfind 查找,返回从右第一个指定字符的索引,找不到返回-1 index ...
  • 有时候我们需要某段字符串或者某段语句查找确认是否包含我们所需要的字符串信息, 举例子说、 某段变量是:A= ”My name is Clay, and you can get my name“ A = "My name is Clay, and you can get my name...
  • 里我们来整理一下Python中字符串查找操作方法总结,除了基本的find()方法外,还会讲解到朴素匹配算法和KMP算法的使用:
  • 下面小编就为大家分享一篇Python 查找字符在字符串中的位置实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python中查找指定字符串的方法如下: code #查询 def selStr(): sStr1 = 'jsjtt.com' sStr2 = 'com' #index查询某个字符串,返回索引 nPos = sStr1.index(sStr2) if(nPos >=0): print 'sStr1中包括sStr2中...
  • Python在字符串中查找字符串

    千次阅读 2021-05-10 19:58:25
    这是小白博主刷leetcode时遇到的一道题,这是博主近日刷的leetcode题库时结果表现最好的一道题,故此分享这份喜悦。...给你两个字符串haystack 和 needle ,请你 haystack 字符串中找出 needle 字符...

    这是小白博主在刷leetcode时遇到的一道题,这是博主近日刷的leetcode题库时结果表现最好的一道题,故在此分享这份喜悦。

    希望在以后的日子里可以继续进步,持之以恒。

     

    目录

    题目介绍

    解题思路及代码

    1.调用函数——find/index

    2.暴力匹配——双指针

    3.暴力匹配——单指针

             4.KMP算法



    题目介绍

    这道题是leetcode题库中的一道简单题(28)题,题目描述如下:

    实现 strStr() 函数。

    给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/implement-strstr

     

    解题思路及代码

    这里有四种解题思路供读者参考:

    1.调用函数——find/index

    (1)find函数:

    str.find(str, beg=0, end=len(string))
    
    • str -- 指定检索的字符串
    • beg -- 开始索引,默认为0。
    • end -- 结束索引,默认为字符串的长度。
    • 若beg和end省略,则取默认值。

    如果包含子字符串返回索引值,否则返回-1。

    (2)index函数:

    str.index(str, beg=0, end=len(string))
    • str -- 指定检索的字符串
    • beg -- 开始索引,默认为0。
    • end -- 结束索引,默认为字符串的长度。
    • 若beg和end省略,则取默认值。

    如果包含子字符串返回开始的索引值,否则抛出异常,即返回:ValueError: substring not found

    因此,此种解题思路的代码如下:

    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            S = haystack
            return S.find(needle)
    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            S = haystack
            return S.index(needle)
    

    注:示例2中,若未查找到子字符串,应返回-1。 find函数符合此要求,index函数不符合此要求。因此,显然find函数更适合此题目。

     

     

    在这里还要简单地介绍一下与 find和index函数很相似的rfind和rindex函数,区别在于rfind/rindex函数返回的是最后一次出现这个字符串的索引位置,而find/index函数返回的是第一次出现这个字符串的索引位置。

    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            S = haystack
            return S.index(needle)
    solution = Solution()
    print(solution.strStr("albjnbl", "l"))
    
    >>>1
    ​
    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            S = haystack
            return S.rindex(needle)
    solution = Solution()
    print(solution.strStr("albjnbl", "l"))
    
    >>>6
    ​

     

    2.暴力匹配——双指针

    如上图所示,我们可以将母字符串 haystack 中与子字符串 needle 长度相等的子字符串一一与needle的每一位比较。

    • 时间复杂度:O(n\times m),其中 n 是字符串 haystack 的长度,m 是字符串 needle 的长度。最坏情况下我们需要将字符串 needle 与字符串 haystack 的所有长度为 m                     的子串均匹配一次。
    • 空间复杂度:O(1)。我们只需要常数的空间保存若干变量。

     

    3.暴力匹配——单指针

    Python可以直接对比两个字符串是否相同,因此我们可以直接对比两个子字符串是否相等,不用逐一对比字符串中的元素。

    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            len1 = len(haystack)
            len2 = len(needle)
            if len2 == 0:
                return 0
            if len2 > len1:
                return -1
            else:
                for i in range(len1 - len2 + 1):
                    fal_needle = haystack[i:i+len2]
                    if fal_needle == needle:
                        return i
                return -1

     

    4.KMP算法

    等博主看懂后再更新hhh~

    展开全文
  • 主要流程:读取文件数据——将每一行数据分成不同的字符段——判断 某个字否段是否含与某个字符。(只是其中一种办法) 代码如下: with open(rC:\Users\LENOVO\Desktop\20170513155231.txt, encoding='utf-8')...
  • 本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法。分享给大家供大家参考,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python #encoding:utf-8 ''''' ...
  • Python中查找字符串指定字符的常用方法有find()、index()。用法:str = 'abcd'print(str.find('c')) #输出即为查找指定字符的索引值print(str.index('c')) #输出即为查找指定字符的索引值123区别:当指定字符该...

    Python中查找字符串指定字符的常用方法有find()、index()。

    用法:

    str = 'abcd'

    print(str.find('c')) #输出即为查找指定字符的索引值

    print(str.index('c')) #输出即为查找指定字符的索引值1

    2

    3

    区别:

    当指定字符在该字符串中不存在时,find输出为-1.index则会报错,如下:

    str = 'abcd'

    print(str.find('f')) #-1

    print(str.index('f')) #ValueError: substring not found1

    2

    3

    缺点:

    find()和index()只能找到第一个索引值。如果指定字符同时存在多个,只会输出第一个指定字符的索引值。

    需要说明的是:Python并没有内置方法可直接解决这个问题。所以需要自己定义一个方法去解决这个问题。

    然后自己想了一个方法,整体思路是:利用前一个指定字符的索引和find()方法。

    lstKey = [] #定义空列表用于存储多个指定字符的索引

    lengthKey = 0

    str = input('字符串:')

    key = input('要查找的关键字:')

    #字符串中存在指定字符串的个数

    countStr = str.count(key)

    #利用获取的countStr进行判断

    if countStr < 1:

    print('该字符串中无要查找的字符')

    elif countStr == 1: #当字符串中只有一个指定字符时,直接通过find()方法即可解决

    indexKey = str.find(key)

    print('查找的关键字的索引为:',indexKey)

    else: #当字符串中存在多个指定字符的处理方法

    #第一个指定字符的处理方法

    indexKey = str.find(key)

    lstKey.append(indexKey) #将第一个索引加入到lstKey列表中

    #其余指定字符的处理方法

    while countStr > 1:

    #将前一个指定字符之后的字符串截取下来

    str_new = str[indexKey+1:len(str)+1]

    #获取截取后的字符串中前一个指定字符的索引值

    indexKey_new = str_new.find(key)

    #后一个索引值=前一个索引值+1+indexkey_new

    indexKey = indexKey+1 +indexKey_new

    #将后发现的索引值加入lstKey列表中

    lstKey.append(indexKey)

    countStr -= 1

    print('查找的关键字的索引为',lstKey)1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    展开全文
  • 我试图在Python中的较大字符串中找到一个子字符串。我试图找到字符串"每秒请求数:"后的文本。似乎我对python字符串和python的一般知识是缺乏的。我的错误是代码的第3行minusStuffBeforeReqPer = output...

    本问题已经有最佳答案,请猛点这里访问。

    我试图在Python中的较大字符串中找到一个子字符串。我试图找到字符串"每秒请求数:"后的文本。似乎我对python字符串和python的一般知识是缺乏的。

    我的错误是在代码的第3行minusStuffBeforeReqPer = output[reqPerIndx[0], len(output)]上,我得到了这样的错误:没有[0]在reqperindx上,我试图访问一个元组,但有了它,我得到了错误,我int object has no attribute __getitem__。我试图在output字符串中找到reqperstr开头的索引。

    代码

    #output contains the string reqPerStr.

    reqPerStr ="Requests per second:"

    reqPerIndx = output.find(reqPerStr)

    minusStuffBeforeReqPer = output[reqPerIndx[0], len(output)]

    eolIndx = minusStuffBeforeReqPer.find("

    ")

    semiColIndx = minusStuffBeforeReqPer.find(":")

    instanceTestObj.reqPerSec = minusStuffBeforeReqPer[semiColIndx+1, eolIndx]

    我觉得这不是最好的方法。如果要查找出现在已知子字符串之后的子字符串,则应使用regex lookbehinds。

    find()方法返回一个表示索引的整数。您正在尝试reqperindx[0],这没有意义。

    如果您在本页中查看问题的右侧,您将看到一列相关问题。他们中的一些人有你想要的答案。当你写问题的时候,同样的列表也会出现。

    您必须使用output[begin:end],而不是output[begin, end](这正是划分普通字符串/列表等的语法的工作方式)。所以:

    minusStuffBeforeReqPer = output[reqPerIndx:len(output)]

    然而,这是多余的。所以你应该做的是:

    minusStuffBeforeReqPer = output[reqPerIndx:]

    通过省略片的end部分,片将一直延伸到output的末端。

    在没有[0]的情况下访问一个元组会出错,因为您已经将一个元组(即(reqPerIndx, len(output))传递给切片的[...],而在没有__getitem__的情况下访问int会出错,因为在编写reqPerIndx[0]时,您试图获取reqPerIndx的0第个元素,这是一个整数,但是当然,没有"整数的第0个元素"这样的东西,因为整数没有元素。

    正如@ashwinichaudhary在评论中指出的那样,如果没有找到子字符串,str.find将返回-1。如果你确信你要找的东西总是在output的某个地方找到,我想你不需要处理-1案件,但无论如何这样做可能是个好主意。

    reqPerIndx = output.find(reqPerStr)

    if reqPerIndx != -1:

    minusStuffBeforeReqPer = ...

    # etc

    else:

    # handle this case separately

    你可能对正则表达式有更好的运气。我不知道output是什么样子,所以我猜你应该调整它来匹配你在output中拥有的东西。

    >>> import re

    >>> re.findall(r'(?:Requests per second:)\s*(\d+)',"Requests: 24")

    []

    >>> re.findall(r'(?:Requests per second:)\s*(\d+)',"Requests per second: 24")

    ['24']

    注意,对于缺少的子字符串,str.find返回-1,这也应该处理。

    @Ashwinichaudhary说,谢谢。

    我从来没想过用regex,我对它不是很精通。但是给定的regex代码,它是如何读取的(find string"and return….)?

    看看regex101.com/r/ax9yi6-它可能会有所帮助。基本上,(?:...)的意思是"寻找...但不捕获它(即返回到输出中)"。\s*的意思是"寻找任何数量的空白"。最后,(\d+)的意思是"查找一个或多个数字,并捕获它(即返回到输出中)"。

    这两行有错误:

    minusStuffBeforeReqPer = output[reqPerIndx[0], len(output)]

    instanceTestObj.reqPerSec = minusStuffBeforeReqPer[semiColIndx+1, eolIndx]

    您必须使用:创建一个范围。start:end。

    可以省略最后一个参数以到达结尾,也可以省略第一个参数以省略开头。参数也可以是负数。由于find可能返回-1,因此您必须以不同的方式处理它,因为如果找不到字符串,您将得到:

    minusStuffBeforeReqPer = output[-1:]

    这是字符串中的最后一个字符。

    您应该有这样的代码:

    #output contains the string reqPerStr.

    reqPerStr ="Requests per second:"

    reqPerIndx = output.find(reqPerStr)

    if reqPerIndx != -1:

    minusStuffBeforeReqPer = output[reqPerIndx[0]:]

    eolIndx = minusStuffBeforeReqPer.find("

    ")

    semiColIndx = minusStuffBeforeReqPer.find(":")

    if eolIndx > semiColIndx >= 0:

    instanceTestObj.reqPerSec = minusStuffBeforeReqPer[semiColIndx+1:eolIndx]

    这很好,但是,您必须用regex更改代码。据我所知,你真的想匹配一个以reqPerStr开头,以结尾的字符串,得到:和之间的所有内容。

    你可以用这样的模式来做到:

    "Requests per second:(.*)

    "

    你最终会得到:

    import re

    reqPerIndx = output.find(reqPerStr)

    match = re.match("Requests per second:(.*)

    ", output)

    if match:

    instanceTestObj.reqPerSec = match.group(1)

    如果要查找所有匹配项,可以执行以下操作:

    for match in re.finditer("Requests per second:(.*)", output)

    instanceTestObj.reqPerSec = match.group(1)

    展开全文
  • 假定字符串为: 小明买冰棍花了5元,买糖果花了3元,买游戏花了59元,小明今天一共花了67元。...以上这篇python 巧用正则寻找字符串中的特定字符的位置方法就是小编分享给大家的全部内容了,希望能
  • python字符串查找函数的使用 打开Python开发工具IDLE,新建‘findstr.py’文件,并写代码如下: s ='/ab/bx,.s' print (s.find('/x')) 注意find是匹配子字符串,而不是匹配第一个字符 F5运行程序,打印出-1,代表...
  • 本文实例讲述了Python实现判断字符串中包含某个字符的判断函数。分享给大家供大家参考,具体如下: #coding=utf8 #参数包含两个: #containVar:查找包含的字符 #stringVar:所要查找字符串 def ...
  • 今天小编就为大家分享一篇在Python中实现替换字符串中的子串的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本文实例讲述了Python实现查找字符串数组最长公共前缀。分享给大家供大家参考,具体如下: 编写一个函数来查找字符串数组的最长公共前缀。 class Solution: def longestCommonPrefix(self, strs): :type strs...
  • Python 查找字符串中指定字符串索引

    千次阅读 2020-12-16 09:45:02
    在字符串中查找符合要求的字符串索引 str = '15 5669 3566 5656' # 查找出现的第一个符合要求字符串的索引 first_index = str.find('56') 3 # 查找出现的最后一个符合要求字符串的索引 last_index = str.find('...
  • Python字符串中查找子串的方法

    千次阅读 2021-02-03 10:57:09
    Python字符串中查找子串的方法发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个...
  • python实现忽略大小写对字符串列表排序的方法python字符串排序方法浅谈Python 字符串格式化输出(format/printf)Python字符串格式化输出方法分析简单讲解Python中字符串字符串的输入输出python实现查找两个字符串...
  • Ronald Isley - Project Windows.mp3'] 每个文件名都是一个字符串。 我希望能够查看songs列表,如果列表的一项与songs列表的内容匹配filenames,请将该文件重命名为歌曲的名称。 解决方案 这是一个将保留文件...
  • Python在字符串中查找关键字

    千次阅读 2020-12-19 05:23:21
    字符串中查找关键字,最常用,也最简单的方法就是:if'a'in'apk':printyesyes不过有时搜索关键字时需要忽略大小写,比如一段日志搜索crash,日志的crash可能会有很多种写法,比如Crash,CRASH,crash等等,那么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 189,041
精华内容 75,616
热门标签
关键字:

在字符串中查找指定字符串python