import re #元字符 代表单词开头或者结尾 也就是单词的分界处 不代表标点符号,空格,换行符 # pattern = re.compile(r'we') # s = pattern.findall('we We well welcome') # print(s) #匹配we和work之间的所有内容 用到元字符 # . 匹配除了换行符的任意字符 # * 含义是 * 前面的内容连续重复任意次 使得整个表达式被表达 #.* 匹配任意数量不换行的字符 # pattern = re.compile(r'we.*work') # s = pattern.findall('we We well welcome like work') # print(s) #匹配所有s开头的字母 # pattern = re.compile(r'ww*') # pattern = re.compile(r'wd*')#可以匹配w100 ?????? 我想用^ $怎么办 # s = pattern.findall('we We well w100 selcome like work') # print(s) #转义字符 元字符当普通字符用时需要转义 取消特殊字符(元字符)的特殊意义 # pattern = re.compile(r'w*://w*.w*.w*/')#可以匹配w100 ?????? 我想用^ $怎么办 # s = pattern.findall('https://www.baidu.com/') # print(s[0]) # #重复 +重复一次或多次 # pattern = re.compile(r'hellod+') # s = pattern.findall('hello1 hello100') # print(s) # # #匹配5到12个字的字符串 # pattern = re.compile(r'^d{5,12}$') # s = pattern.findall('376100870') # print(s) # # #? 匹配0次或1次 # pattern = re.compile(r'wed?') # s = pattern.findall('we we100') # print(s) #[]号 匹配[]中的任意字符 # pattern = re.compile(r'[.?]') # s = pattern.findall('we w.e1?00') # print(s) #分支条件 | 满足任意一种规则都应该匹配成功 #从左到右匹配每个条件 满足后就不会管其他条件了 # pattern = re.compile(r'0d{2}-d{8}|0d{3}-d{7}') # s = pattern.findall('010-11223344 0123-2233445') # print(s) #从左到右匹配每个条件 满足后就不会管其他条件了 # pattern = re.compile(r'd{3}|d{8}') # s = pattern.findall('11223344') # print(s) #匹配IP地址192.168.1.1 pattern = re.compile(r'((d{1,3}).){3}d{1,3}') s = pattern.search('192.168.1.1') print(s.group()) #IP中的每个数字不能大于255 ?????? pattern = re.compile(r'((25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).){3}(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d)') s = pattern.search('256.168.1.1') print(s.group())