我试图使用python在字符串中找到字符串模式,如'/ *'。 我尝试了如下代码片段:
strk = "*\"
if strk in num
print ("here it is")
但是在第一行我发出错误声明:
语法错误:“扫描字符串文字时的EOL。
如何使解释器区分用作字符串元素的“\”和作为换行符的“\”? I.受到以下链接的启发,尝试使用
strk = "*(\)"
但这不起作用。
http://python-reference.readthedocs.io/en/latest/docs/str/escapes.html
答案 0 :(得分:4)
strk = "*\\"
if strk in num:
print ("here it is")
答案 1 :(得分:4)
如何使解释器区分用作字符串元素的“\”和作为换行符的“\”?
好的,首先,\
不是换行符。 \n
是换行符。 \t
是制表符。等等。你已经在一些第三方文档中找到了它们的完整列表,所以我不会在这里列出它们。
那么,解释器 * 如何区分\
表示实际的反斜杠,而\
表示转义序列的第一个字符?
规则非常简单: ** 它会查看下一个字符,如果它是n
或t
或x
或其他任何字符你找到的那个列表,然后\
是转义序列的第一个字符;否则,这只是一个简单的反斜杠。 (对于原始字符串有一个单独的规则,但我们不要在此担心。 *** )
如果你想确保你有一个简单的反斜杠:注意\\
是\
的转义序列。所以,只需要逃避反斜杠以确保它是反斜杠而不是其他东西的逃避:
strk = "*\\"
或者,用不会让你头疼的术语:在源代码字符串文字中加倍所有的反斜杠。
*实际上,当它到达解释器时,它只是一个字符串常量对象;它是处理转义序列的编译器。但这并不重要。
**但它与C使用的规则不同。例如,在Python中,\Q
表示反斜杠后跟Q,但在C中,它只是Q.大多数其他语言都有要么复制了C,要么只是使用反斜杠而不是记录的转义序列的一部分。
***对于大多数与反斜杠相关的混淆情况,原始字符串使一切变得更容易。但是对于字符串末尾反斜杠的特定情况,它们会让事情变得更加混乱。
答案 2 :(得分:1)
您的代码中出现两个错误。
首先,当在代码中写入反斜杠(\
)时,应该使用两个反斜杠,如\\
。这样,解释器就不会在反斜杠或新行之间混淆。
第二个错误是你的if语句,你在if语句的末尾缺少一个冒号。我还建议您使用以下代码:
if "\\*" in word:
print ("here it is")
其中word
可以是任何字符串。