欢迎访问宙启技术站
智能推送

Python函数如何在字符串中查找指定的子字符串?

发布时间:2023-05-19 19:15:40

在Python中,字符串是一种非常常见的数据类型,而在字符串中查找特定的子字符串则是非常常见的操作。Python提供了许多内置函数和方法来处理字符串,其中包括用于在字符串中查找子字符串的函数和方法。

1. Python中用于查找子字符串的函数

Python中用于查找子字符串的主要函数有以下四个:find()、rfind()、index()、rindex()。这些函数都可以用来查找字符串中指定的子字符串,并返回结果。其中,find()和index()函数返回 次出现子字符串的位置,rfind()和rindex()函数返回最后一次出现子字符串的位置。

a. find()函数

find()函数用于在字符串中查找指定的子字符串,并返回它 次出现的位置,如果找不到则返回-1。find()函数的基本语法如下:

str.find(sub[, start[, end]])

其中,str是需要查找的字符串;sub是需要查找的子字符串;start和end是可选的参数,用于指定查找的范围。

示例代码:

str = "Hello, world!"

sub = "world"

print(str.find(sub))  # 返回 7

print(str.find("Python"))  # 返回 -1,没有找到

b. rfind()函数

rfind()函数和find()函数很类似,只不过它返回子字符串最后一次出现的位置。rfind()函数的基本语法如下:

str.rfind(sub[, start[, end]])

其中,str、sub、start和end的含义同find()函数。

示例代码:

str = "Hello, world!"

sub = "l"

print(str.rfind(sub))  # 返回 10

c. index()函数

index()函数和find()函数非常相似,也是用来在字符串中查找指定的子字符串,并返回它 次出现的位置。不同的是,如果找不到子字符串,index()函数会抛出ValueError异常。index()函数的基本语法如下:

str.index(sub[, start[, end]])

其中,str、sub、start和end的含义同find()函数。

示例代码:

str = "Hello, world!"

sub = "world"

print(str.index(sub))  # 返回 7

print(str.index("Python"))  # 抛出ValueError异常,没有找到

d. rindex()函数

rindex()函数和index()函数很类似,只不过它返回子字符串最后一次出现的位置。不同的是,如果找不到子字符串,rindex()函数会抛出ValueError异常。rindex()函数的基本语法如下:

str.rindex(sub[, start[, end]])

其中,str、sub、start和end的含义同find()函数。

示例代码:

str = "Hello, world!"

sub = "l"

print(str.rindex(sub))  # 返回 10

除了以上四个函数外,还有一个count()函数,可以用来统计字符串中指定子字符串的出现次数。count()函数的基本语法如下:

str.count(sub[, start[, end]])

其中,str、sub、start和end的含义同find()函数。

示例代码:

str = "Hello, world!"

sub = "l"

print(str.count(sub))  # 返回 3

2. Python中用于查找子字符串的方法

除了函数以外,Python还提供了一些用于查找子字符串的方法,这些方法大多是在字符串对象上调用的,比如startswith()、endswith()、in和split()。

a. startswith()方法

startswith()方法用于检查字符串是否以指定的前缀开头,如果是,则返回True,否则返回False。startswith()方法的基本语法如下:

str.startswith(prefix[, start[, end]])

其中,str是需要检查的字符串;prefix是需要检查的前缀;start和end是可选的参数,用于指定检查的范围。

示例代码:

str = "Hello, world!"

print(str.startswith("Hello"))  # 返回 True

print(str.startswith("World"))  # 返回 False

b. endswith()方法

endswith()方法用于检查字符串是否以指定的后缀结尾,如果是,则返回True,否则返回False。endswith()方法的基本语法如下:

str.endswith(suffix[, start[, end]])

其中,str是需要检查的字符串;suffix是需要检查的后缀;start和end是可选的参数,用于指定检查的范围。

示例代码:

str = "Hello, world!"

print(str.endswith("world!"))  # 返回 True

print(str.endswith("Python!"))  # 返回 False

c. in关键字

在Python中,可以使用in关键字来检查一个字符串是否包含另一个字符串。如果包含,则返回True,否则返回False。

示例代码:

str = "Hello, world!"

print("world" in str)  # 返回 True

print("Python" in str)  # 返回 False

d. split()方法

split()方法用于将字符串按照指定的分隔符分割成多个子字符串,返回一个列表。split()方法的基本语法如下:

str.split(sep=None, maxsplit=-1)

其中,str是需要分割的字符串;sep是分割符,默认为None;maxsplit是可选的参数,用于指定最大分割次数。

示例代码:

str = "Hello, world!"

print(str.split())  # 返回 ['Hello,', 'world!']

print(str.split(","))  # 返回 ['Hello', ' world!']

总之,Python中提供了丰富的函数和方法,可以很方便地在字符串中查找指定的子字符串。开发者可以根据自己的需求选择适合的方法。