python 字符串函数find功能拓展——查找母串内所有子串的位置

前言  

  我们知道,字符串内置了很多功能的处理函数,其中,find、index函数都可以接受一个参数意义是作为目标子串,而返回母串中从左到右遍历时子串第一次出现的索引值(每一次调用都是从头开始,没有记忆),如果查询不到返回-1。

  如下面的例子:

  如果,子串不在母串中出现,则find函数返回-1,而index方法返回ValueError错误,这也是两者的区别,接上例:



深入

  rindex rfind函数:功能类似,把母串从右向左遍历,找到子串第一次出现的位置,也没有记忆性。



后续

 我编写了一个函数,实现find函数类似的功能,但是这次要把所有的子串位置以列表形式返回,这是函数的功能。

 1 # coding=utf-8
 2 def find_all(source,dest):
 3     length1,length2 = len(source),len(dest)
 4     dest_list = []
 5     temp_list = []
 6     if length1 < length2:
 7         return -1
 8     i = 0
 9     while i <= length1-length2:
10         if source[i] == dest[0]:
11             dest_list.append(i)
12         i += 1
13     if dest_list == []:
14         return -1
15     for x in dest_list:
16         print("Now x is:%d. Slice string is :%s"% (x,repr(source[x:x+length2])),end=" ")
17         if source[x:x+length2] != dest:
18             print(" dest != slice")
19             temp_list.append(x)
20         else:
21             print(" dest == slice")
22     for x in temp_list:
23         dest_list.remove(x)
24     return dest_list
25
26 s1="He!wworld!www.baidu.cowws.cowwppww"
27 s2="ww"
28 index_list = find_all(s1,s2)
29 if index_list != -1:
30     print("Now dest_list is:{}".format(index_list))
31 else:
32     print("Error finding!")

原文地址:https://www.cnblogs.com/Higgerw/p/10632285.html

时间: 2024-11-13 10:57:08

python 字符串函数find功能拓展——查找母串内所有子串的位置的相关文章

python字符串函数

#连接字符串 sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print(sStr1) #复制字符串sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print(sStr2) #比较字符串#strcmp(sStr1,sStr2)sStr1 = 'strchr'sStr2 = 'strch'print(sStr1 == sStr2)#注意cmp()在python3中移除了! #截取字符串#特别注意:下标从0开始:

TSQL 字符串函数:截断和查找

字符串截断函数是指:Stuff 和 SubString,字符串查找函数是:CharIndex 和 PatIndex 一,SubString 截取子串 最常用的字符串函数,用于截取特定长度的子串. SUBSTRING ( expression ,start , length ) 参数说明: start 参数:整数,表示开始位置:字符的序号(index)从1开始,即第一个字符的序号是1: length参数:整数,表示截取字符的最大数量:如果start+Length 大于字符串的总长度,那么返回从St

Python字符串函数rpartition与partition

字符串函数rpartition与partition 这两个函数都接收一个分割字符串作为参数,将目标字符串分割为两个部分,返回一个三元元组(head,sep,tail),包含分割符.细微区别在于前者从目标字符串的末尾也就是右边开始搜索分割符. 代码运行如下:

python字符串、列表功能

一.字符串功能 1.capitaliza 首字母大写# name = 'alex'# v = name.capitalize()# print(v)# 2.将所有大写都变小写,casefold 可以转多国语言,lower只能转英文.# name = 'AleX'# v = name.casefold()# print(v)# name = 'AleX'# v = name.lower()# print(v)# 3.center 字符串居中,参数1(必填)为总长度,参数2(选填),默认空白,填充字

mssql 系统函数 字符串函数 space 功能简介

转自: http://www.maomao365.com/?p=4672  一.space 函数功能简介 space功能:返回指定数量的空格参数简介: 参数1: 指定数量,参数需为int类型 注意事项: 1 如果参数1输入为非varchar或nvarchar类型,那么sql引擎先进行类型转换,如果转换失败,则返回错误信息 否则继续执行此函数 2 如果参数等于零的数值,那么就返回空字符串 3 如果参数小于零,那么就返回null ,会导致字符串叠加操作失败  二.space 函数举例说明例1: /*

python 字符串函数

split函数:将字符串分割成序列 str.split("分隔符") 一般可以这样用 list = [n  for n in str.split],这样可以得到一个新的序列 strip函数:去除两侧的空格字符,如果strip带了参数的话,也可以去除指定的字符 如一个字符"#*1234#" a 可以用a.strip("#")去除两侧的#,也可以输入多个字符如a.strip("#*"),得到“1234”

Pandas | 11 字符串函数

在本章中,我们将使用基本系列/索引来讨论字符串操作.在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame). Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作. 最重要的是,这些函数忽略(或排除)丢失/NaN值. 几乎这些方法都使用Python字符串函数(请参阅: http://docs.python.org/3/library/stdtypes.html#string-methods ). 因此,将Series对象转换为String对象,然后执行该操作.

【c语言】模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL

// 模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL #include <stdio.h> #include <assert.h> char const* my_strchr(char const *p,char c) { assert(p != NULL); while (*p) { if (*p == c) return p; else p++; } return NULL; } int main() { char *p =

python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)

一.通用操作 1.Python len() 方法返回对象(字符.列表.元组等)长度或项目个数. 语法 len()方法语法: len( q ) 参数 q -- 对象. 返回值 返回对象长度. 实例 以下实例展示了 len() 的使用方法: >>>str = "runoob" >>> len(str) # 字符串长度 6 >>> l = [1,2,3,4,5] >>> len(l) # 列表元素个数 5 2.pytho