16这个数字是什么意思?还有其他数字选项吗?
re.compile('(<.*?>)', flags=16)
据我所知,flags 应该喜欢 re.I
传递给 re.compile 的标志是所谓的“位域”或“位集”或“按位标志”。
您可以传递的每个标志都有不同的值 - 1、2、4、8、16、32 等...
这些值很特殊——它们是 2 的完美幂。当你查看二进制数时,它们只设置一个位,而对其他位不做任何事情——2 是 0b10,4 是 0b100,8 是 0b1000,16 是 0b10000 等等上。这意味着您可以通过使每个标志 == 一个单独的位来在单个整数中指定每个标志的存在和不存在。例如,12 是两个标志 - 4 和 8,因为它是 0b1100。
这只是一个“常数”。
>>> re.S
16
当然你应该总是写flags=re.S
而不是flags=16
,但结果是一样的。