Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 寻找一个\*&引用;一串_Python - Fatal编程技术网

Python 寻找一个\*&引用;一串

Python 寻找一个\*&引用;一串,python,Python,我试图使用python在字符串中找到类似“/*”的字符串模式。 我尝试了如下代码片段: strk = "*\" if strk in num print ("here it is") 但在第一行,我得到了一个错误声明: 语法错误:“扫描字符串文字时下线 如何使解释器区分用作字符串元素的“\”和用作换行符的“\”? 受以下链接的启发,我尝试使用 strk = "*(\)" 但这不起作用 实际上,您必须避开转义反斜杠 strk = "*\\" if strk in num: pri

我试图使用python在字符串中找到类似“/*”的字符串模式。 我尝试了如下代码片段:

strk = "*\"
if strk in num 
   print ("here it is")
但在第一行,我得到了一个错误声明:

语法错误:“扫描字符串文字时下线

如何使解释器区分用作字符串元素的“\”和用作换行符的“\”? 受以下链接的启发,我尝试使用

strk = "*(\)"
但这不起作用


实际上,您必须避开转义反斜杠

strk = "*\\"
if strk in num:
   print ("here it is")

代码中出现了两个错误

第一个是,在将反斜杠(
\
)写入代码时,应该使用两个反斜杠,如
\
。在许多语言中,一个反斜杠用于解释特殊字符,例如
\n
代表新行,
\t
代表制表符

第二个错误是if语句的结尾缺少冒号。我还建议您将代码设置为:

if "*\\" in word: 
   print(word)
其中,
word
可以是任何字符串

如何使解释器区分用作字符串元素的“\”和用作换行符的“\”

好的,首先,
\
不是换行符。
\n
是换行符。
\t
是制表符。依此类推。您已经在一些第三方文档中找到了它们的完整列表,所以我不会在这里列出它们

那么,解释器*如何区分表示实际反斜杠的
\
与表示转义序列的第一个字符的
\

规则很简单:*它查看下一个字符,如果它是
n
t
x
或列表中的任何其他字符,则
\
是转义序列的第一个字符;否则,它只是一个简单的反斜杠。(对于原始字符串有一个单独的规则,但这里不必担心。***)

如果要确保有一个简单的反斜杠:请注意,
\\
\
的转义序列。因此,只需转义反斜杠,以确保它是反斜杠,而不是其他内容的转义:

strk = "*\\"
或者,用不伤脑筋的术语来说:将源代码字符串文本中的所有反斜杠加倍


*实际上,当它到达解释器时,它只是一个字符串常量对象;它是处理转义序列的编译器。但这在这里并不重要

**但这与C语言使用的规则不同。例如,在Python中,
\Q
表示反斜杠后跟一个Q,但在C语言中,它只是一个Q。大多数其他语言要么复制了C语言,要么只是错误地使用了不属于文档转义序列的反斜杠


***对于大多数与反斜杠相关的混淆情况,原始字符串会使一切变得更加容易。但是对于字符串末尾出现反斜杠的特定情况,它们反而会使事情变得更加混乱。

是否尝试转义它?
“*\\“
你的标题写着
\*
,你的描述写着
/*
,你的代码写着`*`。你意识到这些都是完全不同的东西,搜索其中一个不会找到另外两个,对吗?*、/*或*你在搜索哪一个?”