日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python如何使用replace做多字符替換_python

作者:醉小義 ? 更新時間: 2022-07-04 編程語言

使用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

欄目分類
最近更新