2

16这个数字是什么意思?还有其他数字选项吗?

re.compile('(<.*?>)', flags=16)

据我所知,flags 应该喜欢 re.I

4

2 回答 2

4

传递给 re.compile 的标志是所谓的“位域”或“位集”或“按位标志”。

您可以传递的每个标志都有不同的值 - 1、2、4、8、16、32 等...

这些值很特殊——它们是 2 的完美幂。当你查看二进制数时,它们只设置一个位,而对其他位不做任何事情——2 是 0b10,4 是 0b100,8 是 0b1000,16 是 0b10000 等等上。这意味着您可以通过使每个标志 == 一个单独的位来在单个整数中指定每个标志的存在和不存在。例如,12 是两个标志 - 4 和 8,因为它是 0b1100。

于 2013-07-04T05:45:38.640 回答
1

这只是一个“常数”。

>>> re.S
16

当然你应该总是写flags=re.S而不是flags=16,但结果是一样的。

于 2013-07-04T05:44:04.680 回答