Python字符串处理实战:strip、replace与re.sub函数详解

栗子
栗子
发布时间:2026-10-12 | 2人浏览过
原创

本文深入解析Python中三种核心字符串处理函数:replace、re.sub与strip。通过具体代码示例,展示如何利用字典映射进行批量字符替换,结合正则表达式实现复杂模式匹配替换,以及使用strip去除指定前后缀字符。内容涵盖基础用法、参数详解及实际应用场景,适合Python初学者及需要高效处理文本数据的开发者参考。

本文详细介绍Python中常用的字符串替换函数strip、replace以及re.sub的具体用法,旨在为读者提供实用的参考案例。

在近期的一次秋季招聘笔试中,我遇到了一道涉及字符串替换的题目。题目描述看似冗长复杂,反复阅读后才发现其核心逻辑非常简单:只需将给定字符串中的特定字符替换为指定内容。解决此类问题的首选方案是使用字典进行映射替换。鉴于该题目本身较为简单,此处不再赘述原题,而是专门花时间梳理了字符串替换的几个常用函数,希望能对有需要的读者有所帮助,同时也作为个人的学习笔记。具体实现细节请见下方代码。

#!/usr/bin/env python
# coding:utf-8
import re
'''''
功能:对常见的几种字符串处理函数进行测试使用学习
Author:沂水寒城
'''
def str_test():
  str_list=['We are family!!!', '00 11 22 33 44 55 66 77 88 99',
       'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove']
  str_dict={
    '!!!':'$$$',
    ' ':'@',
    'T':'t',
    'L':'&'
  }
  #使用replace
  '''''
  基本用法:对象.replace(rgExp,replaceText,max)
  rgExp和replaceText是必须要有的,max是可选的参数
  '''
  str_list1=str_list
  res_list=[]
  for one_str in str_list1:
    for key in str_dict:
      one_str = one_str.replace(key, str_dict[key])
    res_list.append(one_str)
  print '**************replace替换结果为:*********************'
  print str_list1
  print res_list
  #使用re
  '''''
  re.sub()有5个参数,三个必选参数pattern,repl,string;两个可选参数count,flags
  re.sub(pattern,repl,string,count,flags)
  pattern:表示正则表达式中的模式字符串;
  repl:被替换的字符串,或者是一个方法(既可以是字符串,也可以是函数);
  当repl为字符串的时候,也就是需要 将string中与pattern匹配的字符串都替换成repl
  当repl为方法的时候,就必须是一个带有一个参数,且参数为MatchObject类型的方法,该方法需要返回一个字符串。
  string:要被处理的,要被替换的字符串;
  count:指的是最大的可以被替换的匹配到的字符串的个数,默认为0,就是所有匹配到的字符串。
  flgas:标志位
  '''
  str_list2=str_list
  res_list=[]
  pattern_rule=re.compile(r'!!!')
  for one_str in str_list2:
    one_str = re.sub(pattern_rule, '$$$', one_str)
    res_list.append(one_str)
  print '**************sub替换结果为:*********************'
  print str_list2
  print res_list
  #使用strip()
  '''''
  个人使用strip()很久了,感觉这个函数在一些事比如字符串末尾换行符去除等方面出奇的好用,
  它并不算是一个纯正意义上跟上面两个函数类似的字符串处理的函数,但是用于字符串尾部删除等方面的时候
  效果还是很不错的
  '''
  str_list3=str_list
  res_list=[]
  for one_str in str_list3:
    one_str=one_str.strip('!!!')
    res_list.append(one_str)
  print '**************strip替换结果为:*********************'
  print str_list3
  print res_list
str_test()

运行上述代码后,得到的结果如下所示:

**************replace替换结果为:********************* ['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove'] ['We@are@family$$$', '00@11@22@33@44@55@66@77@88@99', 'trouble@is@a@friend$$$trouble@is@a@friend$$$', '&ove&ove&ove'] **************sub替换结果为:********************* ['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove'] ['We are family$$$', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend$$$Trouble is a friend$$$', 'LoveLoveLove'] **************strip替换结果为:********************* ['We are family!!!', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend!!!', 'LoveLoveLove'] ['We are family', '00 11 22 33 44 55 66 77 88 99', 'Trouble is a friend!!!Trouble is a friend', 'LoveLoveLove']

这些函数堪称高效的小工具,在某些应用场景中能发挥四两拨千斤的作用(尽管此说法可能略显夸张)。我个人非常喜爱这几个工具,因此整理出来与大家分享。如有不足之处,恳请多多指正,期待共同学习与进步。

如果您对Python字符串处理感兴趣,推荐查阅本站相关专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》以及《Python入门与进阶经典教程》。

希望本文的阐述能对您的Python程序设计工作有所助益。

本站声明

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

Python 相关产品和应用

全部下载

专题列表