|符号前后调换,为什么结果不一样呢?
text = '2021年3月10日'
print(re.findall(r'\d{4}年\d{1,2}月\d{1,2}日|\d{4}年\d{1,2}月\d{1,2}', text))
# ['2021年3月10日']
print(re.findall(r'\d{4}年\d{1,2}月\d{1,2}|\d{4}年\d{1,2}月\d{1,2}日', text))
# ['2021年3月10']
就是或的意思。从前往后,只要匹配成功第一个,就不会再匹配第二个了
它是先匹配 | 前面的表达式。
如果 | 前面的表达式匹配成功。就直接产生匹配结果,并忽略 | 后面的表达式。
只有 | 前面的表达式无法匹配才开始匹配 | 后面的表达式。
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "1 - c 的值为:", c
c = a | b; # 61 = 0011 1101
print "2 - c 的值为:", c
c = a ^ b; # 49 = 0011 0001
print "3 - c 的值为:", c
c = ~a; # -61 = 1100 0011
print "4 - c 的值为:", c
c = a << 2; # 240 = 1111 0000
print "5 - c 的值为:", c
c = a >> 2; # 15 = 0000 1111
print "6 - c 的值为:", c