我试图理解以下代码中重复的(?i)
语法的含义:
i = self.expect([
"(?i)are you sure you want to continue connecting",
original_prompt,
"(?i)(?:password)|(?:passphrase for key)",
"(?i)permission denied",
"(?i)terminal type",
TIMEOUT,
"(?i)connection closed by remote host"
], timeout=login_timeout)
1条答案
按热度按时间zxlwwiss1#
这在https://docs.python.org/3/library/re.html中的
(?aiLmsux-imsx:...)
标题下进行了记录,如下所示:(?aiLmsux-imsx:...)
(Zero
a
、i
、L
、m
、s
、u
、x
中的一个或多个字母,可选地后跟-
,后跟i
、m
、s
、x
中的一个或多个字母。)这些字母设置或删除相应的标志:re.A
(仅ASCII匹配)、re.I
(忽略大小写)、re.L
(区域设置相关)、re.M
(多行)、re.S
(点匹配所有)、re.U
(Unicode匹配)和re.X
(详细),用于表达式的一部分。(标志在模块内容中进行了说明。)因此,
(?i)
是该标志的内联版本,否则该标志被设置为re.I
或re.IGNORECASE
;这使得匹配不区分大小写,使得permission denied
也可以写成Permission Denied
或PERMISSION DENIED
,但仍然匹配。