代码之家  ›  专栏  ›  技术社区  ›  user1403546

python-替换字符串中的所有单词

  •  0
  • user1403546  · 技术社区  · 6 年前

    给出一个类似的文本

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac massa arcu.
    

    我想写一个函数来替换文本中的所有单词,除了列表中定义的一些单词 密钥列表 ,使用给定的字符串 XXXX . 所以,如果

    keep_list = ['amet', 'ac']
    

    我想要一个输出

    xxxx xxxx xxxx xxxx amet, xxxx xxxx xxxx. xxxx ac xxxx xxxx.
    

    我想保留原始字符串的所有逗号、点等,这是这个函数唯一的困难。

    你将如何优雅地完成它?

    1 回复  |  直到 6 年前
        1
  •  4
  •   SpghttCd    6 年前

    一种方法是使用正则表达式匹配单个单词,然后将回调传递给 re.sub() 用替换 xxxx 如果单词不在列表中。

    import re
    
    txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac massa arcu.'
    keep = ['amet', 'ac']
    
    print(re.sub(r'\b\w+\b', lambda w: w.group() if w.group() in keep else 'xxxx', txt))