【问题标题】:Replace apostrophe in unicode替换 unicode 中的撇号
【发布时间】:2014-03-19 13:17:21
【问题描述】:

我正在尝试替换 python unicode 字符串中的撇号。在调试器中它看起来如下:

u'Tu veux aller trop vite! Pour répondre à cette question, tu dois d\\'abord trouver le bon code.'

替换后应该有\' 而不是\\'。 当我尝试替换撇号时,没有任何反应。我该怎么办?

以下显示加/减代码:

def convert(sheet, file):
    from xlrd import open_workbook
    from lxml import etree
    value = sheet.cell(1, 1).value
    #value = u'Tu veux aller trop vite! Pour répondre à cette question, tu dois d\\'abord trouver le bon code.'
    child = etree.Element('string', name=key.encode('utf-8'))
    child.text = value
    file.write(etree.tostring(root, encoding='utf-8', pretty_print=True))

【问题讨论】:

  • 请出示您的代码。
  • 你试过 string.__repr__()
  • 它与您发布的字符串文字有什么关系?
  • 您能否显示print(repr(value)) 的输出。您的代码中的值不是有效的 Python

标签: python python-2.7 unicode


【解决方案1】:

您的文字无效,您转义了反斜杠,但这样做未能转义单引号 ('),因此过早终止文字。试试这些,这取决于你要实现什么:

print u'Tu veux aller trop vite! Pour répondre à cette question, tu dois d\\\'abord trouver le bon code.'

print u"Tu veux aller trop vite! Pour répondre à cette question, tu dois d\\'abord trouver le bon code."

print u'Tu veux aller trop vite! Pour répondre à cette question, tu dois d\'abord trouver le bon code.'

print u"Tu veux aller trop vite! Pour répondre à cette question, tu dois d'abord trouver le bon code."

【讨论】:

    【解决方案2】:

    我不确定你在这里要实现什么。您想在 Python 脚本的字符串变量中将 '\\' 替换为 '\' 吗?由于您的文字无效,因此我做了一些小改动。

    这是一个使用正则表达式将 '\\' 替换为 '\' 的想法

        # -*- coding: utf-8 -*-
        import re
        str= u"Tu veux aller trop vite! Pour répondre à cette question, du dois d\\'abord trouver le bon code."
        str2=re.sub(r'\\', "", str)
        print str
        print str2
    

    输出:

    Tu veux aller trop vite! Pour répondre à cette question, du dois d\'abord trouver le bon code.
    Tu veux aller trop vite! Pour répondre à cette question, du dois d'abord trouver le bon code.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2014-07-22
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2018-11-16
      相关资源
      最近更新 更多