【问题标题】:How to use str.replace() with a dictionary of replacements? Python如何将 str.replace() 与替换字典一起使用? Python
【发布时间】:2013-07-22 09:12:18
【问题描述】:

给定一个替换字典,其中key = to be replaced 和value = replacements,例如:

replacements = {u'\u2014':'-', u'\u2019':"'", u'\u2018':"'", u'\u201d':'"', u'\u201c':'"'}

如何在不遍历 replacements.keys() 的情况下执行替换?

如何使用正则表达式 re.sub() 进行相同的操作?

我一直是这样做的:

for r in replacements:
  sentence = sentence.replace(r,replacements[r])

【问题讨论】:

    标签: python regex string replace


    【解决方案1】:

    您正在寻找unicode.translate()。它需要一个 unicode ordinals(整数)的映射,并且值也应该是序数,或者 unicode 字符串,或者None 来表示删除该字符:

    replacements = {ord(k): ord(v) for k, v in replacements.iteritems()}
    sentence = sentence.translate(replacements)
    

    演示:

    >>> replacements = {ord(k): ord(v) for k, v in replacements.iteritems()}
    >>> replacements
    {8216: 39, 8217: 39, 8212: 45, 8221: 34, 8220: 34}
    >>> u'\u2019Hello world! \u2014 You rock!\u2018'.translate(replacements)
    u"'Hello world! - You rock!'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 2014-04-17
      • 1970-01-01
      • 2020-10-07
      • 2021-08-28
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多