忽略python中的反斜杠字符

时间:2016-04-14 13:00:26

标签: python

我觉得这个有点棘手。

如果我有:

a = "fwd"
b = "\fwd"

如何忽略"\"之类的内容,如

print(a in b)

可以评估为True?

3 个答案:

答案 0 :(得分:11)

fwd中没有b。您有wd,前面有ASCII codepoint 0C, the FORM FEED character。这是Python在常规字符串文字中使用\f转义序列时所放置的值。

如果要包含反斜杠或使用原始字符串文字,请加倍反斜杠:

b = '\\fwd'
b = r'\fwd'

现在a in b有效:

>>> 'fwd' in '\\fwd'
True
>>> 'fwd' in r'\fwd'
True

请参阅String literals documentation

  

除非存在'r''R'前缀,否则字符串中的转义序列将根据与标准C使用的规则类似的规则进行解释。已识别的转义序列为:

     

[...]

     

\f ASCII Formfeed(FF)

答案 1 :(得分:7)

使用原始字符串执行此操作的一种方法:

>>> a = "fwd"
>>> b = "\fwd"
>>> a in b
False
>>> a = r"fwd"
>>> b = r"\fwd"
>>> a in b
True

相关的docs

答案 2 :(得分:1)

你需要"逃避"反斜杠,如:

b = '\\fwd'

否则,它将单个反斜杠+ f读作ASCII字符(换页)。

以下是一个例子。

>>> a='fwd'
>>> b='\fwd'
>>> c='\\fwd'
>>> a in b
False
>>> a in c
True