簡體   English   中英

如何測試\\符號(反斜杠)是否在字符串中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM