python如何使用replace做多字符替换

作者:醉小义 时间:2022-10-23 01:26:59 

使用replace做多字符替换


import re

words = '''
   钟声响起归家的讯号
   在他生命里
   仿佛带点唏嘘
   黑色肌肤给他的意义
   是一生奉献 肤色斗争中
   年月把拥有变做失去
   疲倦的双眼带着期望
   今天只有残留的躯壳
   迎接光辉岁月
   风雨中抱紧自由
   一生经过彷徨的挣扎
   自信可改变未来
   问谁又能做到
   可否不分肤色的界限
   愿这土地里
   不分你我高低
   缤纷色彩闪出的美丽
   是因它没有
   分开每种色彩
   年月把拥有变做失去
   疲倦的双眼带着期望
   今天只有残留的躯壳
   迎接光辉岁月
   风雨中抱紧自由
   一生经过彷徨的挣扎
   自信可改变未来
   问谁又能做到
   今天只有残留的躯壳
   迎接光辉岁月
   风雨中抱紧自由
   一生经过彷徨的挣扎
   自信可改变未来
   问谁又能做到
   今天只有残留的躯壳
   迎接光辉岁月
   风雨中抱紧自由
   一生经过彷徨的挣扎
   自信可改变未来
   问谁又能做到
   今天只有残留的躯壳
   迎接光辉岁月
   风雨中抱紧自由
   一生经过彷徨的挣扎
   自信可改变未来
'''

'替换\n 和空格'
#方法1
words = words.replace('\n', '').replace(' ', '')
print(words)

#方法2
rep = {'\n':'',' ':''}
rep = dict((re.escape(k), v) for k, v in rep.items())
#print(rep)
#print(rep.keys())
pattern = re.compile("|".join(rep.keys()))
#print(pattern)
my_str = pattern.sub(lambda m: rep[re.escape(m.group(0))], words)
print(my_str)
#print(words.replace(['\n',' '],''))

'''
钟声响起归家的讯号在他生命里仿佛带点唏嘘黑色肌肤给他的意义是一生奉献肤色斗争中年月把拥有变做失去疲倦的双眼带着期望今天只有残留的躯壳迎接光辉岁月风雨中抱紧自由一生经过彷徨的挣扎自信可改变未来问谁又能做到可否不分肤色的界限愿这土地里不分你我高低缤纷色彩闪出的美丽是因它没有分开每种色彩年月把拥有变做失去疲倦的双眼带着期望今天只有残留的躯壳迎接光辉岁月风雨中抱紧自由一生经过彷徨的挣扎自信可改变未来问谁又能做到今天只有残留的躯壳迎接光辉岁月风雨中抱紧自由一生经过彷徨的挣扎自信可改变未来问谁又能做到今天只有残留的躯壳迎接光辉岁月风雨中抱紧自由一生经过彷徨的挣扎自信可改变未来问谁又能做到今天只有残留的躯壳迎接光辉岁月风雨中抱紧自由一生经过彷徨的挣扎自信可改变未来
'''

批量替换字符串内容

问题描述

批量替换字符串内容

  • x:原始字符串

  • old:要替换的内容,可为 str , list

  • new:新内容,可为 str , list , None

  • strip:是否删除前后空格

不传新内容 new,则要替换的内容 old 被删掉。

解决方案

from itertools import zip_longest
def replace(x, old, new=None, strip=False) -> str:
   '''批量替换字符串内容
   :param x: 原始字符串
   :param old: 要替换的内容,可为 `str` , `list`
   :param new: 新内容,可为 `str` , `list` , `None`
   :param strip: 是否删除前后空格
   >>> replace('10000阅读', old='阅读')
   '10000'
   >>> replace('文章10000阅读', old=['文章', '阅读'])
   '10000'
   >>> replace('10000阅读', old='阅读', new='点击')
   '10000点击'
   >>> replace('文章10000阅读', old=['文章', '阅读'], new=[None, '点击'])
   '10000点击'
   >>> replace('文章10000阅读', old=['文章', '阅读'], new=['', '点击'])
   '10000点击'
   >>> replace('文章10000阅读', old=['文章', '阅读'], new=['美文'])
   '美文10000'
   '''
   if not new:
       new = ''
   if isinstance(old, str):
       x = x.replace(old, new)
   if isinstance(old, list):
       for _old, _new in zip_longest(old, new, fillvalue=''):
           if _new == None:
               _new = ''
           x = x.replace(_old, _new)
   if strip:
       x = x.strip()
   return x

内置方法

该方法只能一一对应

s = '你好,今天怎么样?挺好的.'
table = s.maketrans(',.?', ',。?')
print(s.translate(table))
# 你好,今天怎么样?挺好的。

来源:https://blog.csdn.net/qq_30638831/article/details/81153011

标签:python,replace,多字符,替换
0
投稿

猜你喜欢

  • Python中shape计算矩阵的方法示例

    2022-04-09 20:34:06
  • 简单三步轻松实现ORACLE字段自增

    2024-01-16 06:06:58
  • 用JS实现轮播图效果(二)

    2024-06-05 09:11:49
  • Python的进制转换和ASCLL转换你了解吗

    2021-09-18 05:33:59
  • Python从使用线程到使用async/await的深入讲解

    2021-07-26 10:56:11
  • Python中POST调用Restful接口示例

    2021-03-14 19:42:19
  • Python实现多属性排序的方法

    2021-03-11 02:13:57
  • Python 调用 zabbix api的方法示例

    2021-07-15 02:35:09
  • Python中的sort()方法使用基础教程

    2022-03-07 21:44:09
  • MySQL定期分析检查与优化表的方法小结

    2024-01-24 15:04:14
  • 如何使用Git实现切换分支开发过程解析

    2022-07-03 20:57:06
  • scrapy-redis分布式爬虫的搭建过程(理论篇)

    2022-04-25 20:49:25
  • php+mysql实现简单登录注册修改密码网页

    2024-04-30 08:49:54
  • 详解解决Python memory error的问题(四种解决方案)

    2021-03-11 14:59:11
  • Python logging模块异步线程写日志实现过程解析

    2023-07-29 05:05:03
  • PHP数字前补0的自带函数sprintf 和number_format的用法(详解)

    2024-06-05 09:50:01
  • 基于MATLAB和Python实现MFCC特征参数提取

    2023-01-29 07:37:53
  • windows下python 3.9 Numpy scipy和matlabplot的安装教程详解

    2021-12-20 13:20:47
  • pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率

    2023-01-06 11:04:09
  • python中multiprosessing模块的Pool类中的apply函数和apply_async函数的区别

    2023-03-21 20:23:37
  • asp之家 网络编程 m.aspxhome.com