Python 正则表达式中的 verbose 标志

2024 年 8 月 29 日 | 阅读 3 分钟

在本文中,我们将讨论 re 包中的 VERBOSE 标志以及用户如何使用它。

re.VERBOSE

regex 包的 VERBOSE 标志允许用户编写看起来更漂亮、更易读的正则表达式。此标志通过允许用户在视觉上分隔模式的逻辑部分并添加更多注释来实现这一点。

模式内的空白字符将被忽略,但当空白字符存在于字符类中,或当它前面是未转义的反斜杠,或当它位于 * ? , ( ? P 或 (? : 等标记内时,空白字符不能被忽略。但是,当 # 出现在行中时,如果它不在字符类中,或者前面没有未转义的反斜杠。从 # 最左边到行末的所有字符都将被忽略。

示例 -

上述命令将作为参数传递给 **re.compile()** 方法,该方法写为“re.compile(Regular Expression, re.VERBOSE)”。re.compile() 方法将返回 REGEX OBJECT,该对象将与给定的字符串进行匹配。

Verbose 标志的用例

让我们通过一个例子来更好地理解它。假设要求用户输入他们的 EMAIL ID,开发人员需要使用 RegEX 来验证它。EMAIL 的格式如下所示:

  • 用户的个人详细信息/本地部分,如用户名:Mark3213
  • 单个 @ 字符
  • 域名,例如 Gmail、Hotmail、Fastmail、inbox、jubii、Rediff 等。
  • 单个点 (.)
  • 最后,如 .in、.net、.org、.com、.int、.edu 等域名。
Input : [email protected]
Output : Valid ID


Input : [email protected]@
Output : Invalid ID
This ID is invalid because there is @ character after the domain name.
Input : [email protected] 
Output : Invalid Id
This ID is invalid because there is no domain is the Email ID.

示例 1

输出

[email protected] : is Valid email. Details of it are as follow: 
 Local : username12432
 Domain : gmail
 The domain name : com

 [email protected]@ : is Invalid Id
 [email protected] : is Invalid Id

下一个主题Python AST 模块