如何在Python 3中的assertRegex中表达多行正则表达式?

And*_*ier 3 python regex unit-testing python-3.x

我正在使用Python 3.4中的库中的assertRegex()函数unittest。它仅需要两个相关参数:要与之匹配的文本和正则表达式。似乎阻止我表达任何与正则表达式相关的常量,例如re.MULTILINE

如何构造或指定多行正则表达式并与之配合使用assertRegex()?或者,有解决我的问题的相关方法吗?

Mal*_*imi 5

请参阅Python文档中的此处

(?iLmsux)
Run Code Online (Sandbox Code Playgroud)

(来自集合“ i”,“ L”,“ m”,“ s”,“ u”,“ x”的一个或多个字母)。字母为整个正则表达式设置了相应的标志:re.I(忽略大小写),re.L(取决于区域设置),re.M(多行),re.S(所有点均匹配),re.U(取决于Unicode)和re.X(详细)。(标志在模块内容中描述。)如果您希望将标志包括在正则表达式中,而不是将标志参数传递给re.compile()函数,则这很有用。

请注意,该(?x)标志会更改表达式的解析方式。应该在表达式字符串中首先使用它,或者在一个或多个空格字符之后使用它。如果标志前有非空格字符,则结果不确定。

  • 对于那些原始答案不够的人 - 像我一样,这是一个例子:原始:`r'^[0-9A-F]{8}$'` with ignore case: `r'(?i)^[ 0-9A-F]{8}$'` (2认同)