【问题标题】:Parsing strings with single quotation marks in Python在 Python 中用单引号解析字符串
【发布时间】:2013-10-14 16:31:21
【问题描述】:

如果我有一个字符串,如:'I can't parse this',中间有一个单引号,我怎样才能在不出现语法错误的情况下删除它,并返回 ICANTPARSETHIS?我知道如果它是“我无法解析这个”,它会起作用,但我正在研究一个问题,即潜在输入可能没有双引号包围它。

【问题讨论】:

  • 引号只是字符串文字中的语法错误,可以通过适当的引号或使用三引号字符串来处理。
  • 但听起来好像您正在尝试处理程序输入,在这种情况下它不是问题究竟你想在这里做什么?
  • 如果您在 Python 2 中使用 input(),请改用 raw_input(),并避免将您的输入完全视为 Python 表达式。
  • 请发布示例输入和预期输出以及您为尝试此操作而编写的任何代码。就目前而言,这最终会被关闭,因为不清楚你的要求是什么。
  • 自动标记会传入一个字符串 value。自动标记如何生成该字符串不是您的问题;一旦有了字符串值,根据定义,就不会出现语法错误。

标签: python string parsing char escaping


【解决方案1】:

你在这里误解了一些东西。这里完全没有问题。

语法错误仅适用于源代码。字符串值是不是源代码。

如果您的源代码使用字符串 literals,Python 会解析这些字符串并生成字符串 value。字符串字面量可以有语法错误,但如果没有错误,它会产生一个字符串值,就是那个值。

在 Python 解释器中,此类字符串值使用与字符串文字相同的格式表示,以便于调试和复制回解释器。请放心,Python 解释器知道如何正确转义此类值中的引号:

>>> """Text with a single quote: '"""
"Text with a single quote: '"""
>>> """We can use a double quote too: ". See?"""
'We can use a double quote too: ". See?'
>>> """Even mixing " and ' is not a problem."""
'Even mixing " and \' is not a problem.'

我在那里使用了三重引号的文字语法,但 Python 回显了使用所需最小引用样式的替代方案,并根据需要转义引号符号。

【讨论】:

    【解决方案2】:
    print "Parse 'this string' to something".split()
    print re.findall(some_pattern,"this is a string with `internal quotation` marks")
    print 'quotes' == "quotes" == """quotes""" == '''quotes''' == u'quotes' == u"quotes"
    

    我不确定您的问题是什么……但这两个示例表明您可以解析带有内部引号的字符串

    也证明引号基本都是一样的

    【讨论】:

      【解决方案3】:

      所以我的理解是你想删除“不能”上的撇号?

      'I can't parse this'.replace("'", "")
      >>> 'I cant parse this'
      

      或者如果你有一个变量:

      s = 'I can\'t parse this'
      s.replace("'", "")
      >>> 'I cant parse this'
      

      编辑:正如指出的第二个例子是一个语法错误,撇号上没有转义字符。

      【讨论】:

      • 我忘记了转义字符,但这实际上将 str 设置为双引号 str,而单引号仍在其中。
      • 正是,这说明 OP 不明白这里发生了什么。你呢?
      • 我明白,我想念他/她没有使用文字的OP,而是潜在的输入。此外,我通常不会测试这样的问题,所以在输入框中输入错误只是一个笨蛋。我的错。
      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 2020-02-19
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2021-10-24
      • 2016-04-06
      相关资源
      最近更新 更多