Python字符串基础操作:切片、分割、检索与过滤详解

Finn
Finn
发布时间:2026-10-13 | 2人浏览过
原创

本文详解Python中字符串的基础内置函数与过滤技巧。涵盖UTF-8编码下中文占位、字符串切片截取、split分割返回数组、count/find/index/startswith/endswith检索方法,以及利用re.sub进行关键词过滤的完整用法与代码示例。

Python字符串编码与切片基础

在Python中,当字符编码设置为UTF-8时,中文字符在字符串中占用3个字节,而其他常规字符则占用1个字节。

接下来将直接介绍几种Python中常用的字符串内置函数。本文涉及部分模块及之前章节未详细讲解的相关知识,相关细节将在后续内容中补充。

字符串切片(用于截取字符串部分):


#字符串切片 string[开始位置:结束位置:步长]
name = "巩祎鹏"print(name[0:])
 #从第一个字符截取到最后一个字符
print(name[0:2]) 
#从第一个字符截取到第二个字符
print(name[:3]) 
#从第一个字符截取到第三个个字符
print(name[0:3:2])
 #从第一个字符截取到最后一个字符,每次步长为2

运行上述代码后的输出结果如下:

巩祎鹏 巩祎 巩祎鹏 巩鹏

字符串分割与数组返回

字符串分割操作:


#分割字符串 split()函数 string.splist(sep,maxsplit)
#string.splist(用于指定分隔符(如果没有参数,默认为None即空格),
分割次数(默认为-1,即没有限制))
#eg
word ="所 有 风 光 的 背 后,最 终 都 要 用 孤 独 来 偿 还"
print(word.split()) #默认为用空格进行分割
print(word.split(',')) #使用逗号(,)进行分割
print(word.split(' ',5)) #使用空格(None) 来进行分割,且只分割前五个字符

分割操作后的输出结果如下:

['所', '有', '风', '光', '的', '背', '后,最', '最终', '都', '要', '用', '孤', '独', '来', '偿', '还'] ['所 有 风 光 的 背 后', '最 终 都 要 用 孤 独 来 偿 还'] ['所', '有', '风', '光', '的', '背 后,最 终 都 要 用 孤 独 来 偿 还']

可以看出,执行字符串分割操作后,返回的数据类型为数组(列表)。

字符串检索函数详解

字符串检索功能主要涉及count()函数、find()函数、index()函数、startswith()函数以及endswith()函数。


#count()方法 返回值为:int 用于检索指定字符在另外一个字符串中出现的次数,如果检索的字符不存在则会返回0.
#语法为string.count(sub[start[end]]) string:被检索的字符串 sub:要检索的字符 start:可选,开始位置 end:可选,结束位置
#eg:
demoStr = "@中国,@美国,@英国"
print(demoStr.count('@'))
print(demoStr.count('国'))

相关检索函数的输出结果如下:

3 3

关于find()函数的具体应用:


#find()函数 返回值为:int 用于检索指定字符在另外一个字符串中第一次出现的下标,如果没有发现字符则会返回-1
#语法为string.find(sub[start[end]]) string:被检索的字符串 sub:要检索的字符 start:可选,开始位置 end:可选,结束位置
#eg:
testStr = "123123123"
print(testStr.find('1'))
print(testStr.find('3'))

调用find()函数后的输出结果如下:

0 2

index()方法的返回值类型为int,其功能与find()方法类似。不同之处在于,若使用index()方法未找到指定字符,程序将抛出异常。

startswith()方法与endswith()方法用于判断字符串是否以特定子串开头或结尾。


#startswitch()方法与endswitch()方法 返回值:boolean
 用于检索是否以指定字符串开头亦或者是结尾
#语法:string.startswitch(sum[,start[,end]]) string.endswitch(sum[,start[,end]])
#eg:
email = "g2982272986@qq.com"
print(email.startswith('g'))
print(email.endswith('.com'))

这两个方法的输出结果如下:

True True

字符串大小写转换

字符串大小写转换涉及lower()方法与upper()方法。


#lower()转小写 语法: string.lower()
#eg:
demoStr_lower = "sfSLDFsdlfk"
print("原字符串为"+demoStr_lower)
print("转换后为:"+demoStr_lower.lower())
#upper()转大写 语法:string.upper()
#eg:
demoStr_upper = "sfSLDFsdlfk"
print("原字符串为"+demoStr_upper)
print("转换后为:"+demoStr_upper.upper())

大小写转换的输出结果如下:

原字符串为sfSLDFsdlfk 转换后为:sfsldfsdlfk 原字符串为sfSLDFsdlfk 转换后为:SFSLDFSDLFK

利用re模块进行字符串过滤

字符串过滤操作主要使用re模块中的sub函数。

直接展示相关代码,通过演示即可理解其用法。


#定义一个函数来过滤字符串
#语法:#sub(repl, string[, count]) 或 re.sub(pattern, repl, string[, count]):
#第一个参数:需要屏蔽的关键词 第二个参数:过滤后替换原来关键字的字符串 第三个参数:需要过滤的字符串
#使用repl替换string中每一个匹配的子串后返回替换后的字符串。

def filterfar(string):
  """
  用于过滤字符串
  :param 需要过滤的字符串: 参数
  :return: 过滤后的字符串
  """
  # 导入模块
  import re
  #需要过滤的关键字
  string_re = r"(黑客)|(监听)"
  #过滤字符串
  sub = re.sub(string_re,"= =!",string) #第一个参数:需要屏蔽的关键词 第二个参数:过滤后替换的问题 第三个参数:需要过滤的字符串
  print(sub)
#打印输出
filterfar("我是一名黑客")
filterfar("我现在正在监听你")

过滤操作的输出结果如下:

我是一名= =! 我现在正在= =!你

从输出结果可见,原文中的“黑客”及“监听”这两个关键词已被替换为“= =!”。

关于语法中为何存在直接调用函数名sub与通过re.sub调用的区别,将在后续讲解模块机制时详细说明。

总结

以上内容介绍了Python中字符串String的基本内置函数以及利用过滤字符模块函数的基本用法,希望能为读者提供帮助。若有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表