import re # str = input() str = 'read read[addr=0x17,mask=0xff,val=0x7],read_his[addr=0xff,mask=0xff,val=0x1],read[addr=0xf0,mask=0xff,val=0x80]' str = str.split(' ') pat = str[0] s = str[1] # update : []里面默认就是或,所以|其实是被当作字面量了,原来的写法是错的,和理论的(a|b)搞混了 # num = '(0[x|X][a-f|A-F|0-9]*)' num = '(0[xX][a-...