regex What does(?i)在Python/pexpect正则表达式中是什么意思?

iaqfqrcu  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(121)

我试图理解以下代码中重复的(?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)
zxlwwiss

zxlwwiss1#

这在https://docs.python.org/3/library/re.html中的(?aiLmsux-imsx:...)标题下进行了记录,如下所示:
(?aiLmsux-imsx:...)
(Zero aiLmsux中的一个或多个字母,可选地后跟-,后跟imsx中的一个或多个字母。)这些字母设置或删除相应的标志:re.A(仅ASCII匹配)、re.I(忽略大小写)re.L(区域设置相关)、re.M(多行)、re.S(点匹配所有)、re.U(Unicode匹配)和re.X(详细),用于表达式的一部分。(标志在模块内容中进行了说明。)
因此,(?i)是该标志的内联版本,否则该标志被设置为re.Ire.IGNORECASE;这使得匹配不区分大小写,使得permission denied也可以写成Permission DeniedPERMISSION DENIED,但仍然匹配。

相关问题