如何测试\符号(反斜杠)是否在字符串中?

时间:2017-05-03 12:14:42

标签: python python-3.x

所以我试图运行此命令if r"\" in text:,但它不起作用。它认为整行是一个字符串。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:6)

原始文字不是完全原始的。文档的相关段落位于https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals的最底部,就在下一节(" String literal concatenation")开始之前:

  

即使在原始文字中,也可以使用反斜杠转义引号,但反斜杠仍保留在结果中;例如,r"\""是一个有效的字符串文字,由两个字符组成:反斜杠和双引号; r"\"不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始文字不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。另请注意,单行反斜杠后跟换行符被解释为文字的一部分,而不是行继续。

(原文强调。)

因此,您可以编写r"\\"并获取包含两个反斜杠的字符串,您可以编写r"\""并获取包含一个反斜杠和一个双引号字符的字符串,但是如果你想要一个包含只有一个反斜杠的字符串,你就不能用原始文字来做。您需要改为编写"\\"

答案 1 :(得分:3)

使用此:

"\\"

即转义反斜杠,而不是转义报价。

答案 2 :(得分:3)

你正在努力逃脱角色。

由于\是一个转义字符,您必须将其转义为“此字符”,而不是“以下内容将被转义”。

if '\\' in 'foo\\':

答案 3 :(得分:2)

if "\\" in text

这应该有用,你只需要逃避它