[英]How to test if \ symbol (backslash) is in a string?
所以我試圖if r"\\" in text:
運行此命令if r"\\" in text:
它不起作用。 它認為整行是一個字符串。 我該如何解決?
原始文字並非完全原始。 文檔的相關段落位於https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals的最底部,就在下一節(“String literal concatenation”)開始之前:
即使在原始文字中,引號也可以使用反斜杠進行轉義,但反斜杠仍保留在結果中; 例如,
r"\\""
是一個有效的字符串文字,由兩個字符組成:反斜杠和雙引號;r"\\"
不是有效的字符串文字(即使原始字符串也不能以奇數個反斜杠結尾)。具體來說, 原始文字不能以單個反斜杠結尾 (因為反斜杠會轉義后面的引號字符)。另請注意,單個反斜杠后跟換行符被解釋為文本中的兩個字符,而不是行繼續。
(原文強調。)
所以,你可以寫r"\\\\"
並得到一個包含兩個反斜杠的字符串,你可以寫r"\\""
並得到一個包含一個反斜杠和一個雙引號字符的字符串,但如果你想要一個只包含一個字符串的字符串反斜杠 ,你不能用原始文字來做。你需要寫"\\\\"
。
用這個:
"\\"
也就是說,一個逃脫的反斜杠,而不是逃脫的報價。
你正在與逃避角色掙扎。
因為\\
是一個逃避的角色,你必須將其轉義為“ 這個角色 ”,而不是“ 將會逃脫的追隨者 ”。
if '\\' in 'foo\\':
if "\\" in text
這應該工作,你只需要逃避它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.