(1) “\b”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割 (2) “.”在正则表达式中表示除换行符以外的任意字符 (3) “*”表示任意数量连续字符,这种被称为通配符。但在正则表达式中,任意字符是用“.”表示,而“*”则不是表示字符,而是表示数量 (4)因为“*”在匹配时,会匹配尽可能长的结果(贪婪匹配)。如果你想让他匹配到最短的就停止,需要用“.*?”(懒惰匹配) (5)数字匹配: \d ,表示任意长度的数字可以用 [0-9]* 或 \d* ,但是需注意*表示的任意长度包括 0,如果要限定长度,就用{}代替+,大括号里写上你想要的长度
text='site sea sue sweet see case sse ssee loses' #匹配出所有 s 开头,e 结尾的单词。 data=re.findall(r'\bs.*?e\b',text) print(data) data1=re.findall(r'\bs\S*?e\b',text) print(data1) #匹配出11位数字的方法 text1="name 12345588855 hdsf" data2=re.findall(r'[0-9]',text1) #[0-9]{11} print(data2) #输出['1', '2', '3', '4', '5', '5', '8', '8', '8', '5', '5'] data3=re.findall(r'[0-9]*',text1) #[0-9]改为\d也可以 print(data3)#输出 ['', '', '', '', '', '12345588855', '', '', '', '', '', ''] #想要再把第一位限定为 1,就在前面加上 1,后面去掉一位:1\d{10}如:data4=re.findall(r'1[0-9]{10}',text1) #[0-9]改为\d也可以 data4=re.findall(r'[0-9]+',text1) #[0-9]改为\d也可以 print(data4) #输出['12345588855'] #匹配出11位数字的方法,如果要限定长度,就用{}代替+,大括号里写上你想要的长度 data3=re.findall(r'\d{11}',text1) #\d改为[0-9]也可以 print(data3) #输出['12345588855']