一、内置方法
Python提供了一些内置的字符串查找方法,最常用的包括find()、replace()、count()、startswith()和endswith()。
1、find()
find()方法用于查找字符串中的子串位置,返回值为子串首字符位置的索引。如果没找到,则返回-1。
str1 = "hello world" print(str1.find("world")) # 结果为6,表示“world”在str1的第7个字符处开始
2、replace()
replace()方法用于将字符串中的子串替换为其他字符串,返回结果为新字符串。
str1 = "hello world" new_str1 = str1.replace("world", "python") print(new_str1) # 结果为“hello python”
3、count()
count()方法用于统计字符串中某个子串出现的次数,返回结果为整数。
str1 = "hello world" print(str1.count("l")) # 结果为3,表示“l”在字符串中出现了3次
4、startswith()和endswith()
startswith()和endswith()方法用于判断字符串是否以某个子串开头或结尾,返回结果为布尔值。
str1 = "hello world" print(str1.startswith("hello")) # 结果为True,表示str1以“hello”开头 print(str1.endswith("ld")) # 结果为True,表示str1以“ld”结尾
二、正则表达式
正则表达式是一种模式匹配工具,通过定义匹配的模式,可以在字符串中进行高效快速的查找和替换。
使用Python中的re模块,可以进行正则表达式的相关操作。其中最常用的函数包括search()、findall()、sub()和split()。
1、search()
search()函数用于在字符串中查找匹配某个正则表达式的第一个子串,并返回MatchObject对象。
import re str1 = "hello world" pattern = "wo.*d" match = re.search(pattern, str1) print(match.group()) # 结果为“world”,表示在str1中匹配到了“wo.*d”模式的子串“world”
2、findall()
findall()函数用于从字符串中查找所有匹配某个正则表达式的子串,并以列表形式返回所有匹配项。
import re str1 = "hello world, hello python" pattern = "hello" match = re.findall(pattern, str1) print(match) # 结果为[“hello”, “hello”],表示在str1中匹配到了2个“hello”子串
3、sub()
sub()函数用于在字符串中用指定的字符串替换所有匹配某个正则表达式的子串。
import re str1 = "hello world, hello python" new_str1 = re.sub("hello", "hi", str1) print(new_str1) # 结果为“hi world, hi python”,表示将str1中所有的“hello”替换为“hi”
4、split()
split()函数用于根据正则表达式在字符串中分割子串,并返回分割后的字符串列表。
import re str1 = "hello world, hello python" pattern = ",\s+" new_str1 = re.split(pattern, str1) print(new_str1) # 结果为[“hello world”, “hello python”],表示将str1按照“,\s+”分割为两部分
三、字符串方法链
Python中的字符串方法可以进行链式调用,即在一个字符串上,依次调用多个字符串方法。
str1 = "hello world, hello python" new_str1 = str1.replace("world", "python").split(", ")[1].upper() # 结果为“HELLO PYTHON”,表示在str1中先将“world”替换为“python”, # 然后按照“, ”分割为两部分,取第二部分,在转为大写字符串