>>> #正则表达式 >>> import re >>> re.search(r"fishc","I love FishC.com!") >>> re.search(r"FishC","I love FishC.com!") <_sre.SRE_Match object at 0x02CD59C0> >>> >>> #通配符“.”的使用 >>> re.search(r'.','I love you!') <_sre.SRE_Match object at 0x02CD59F8> >>> re.search(r'lov.','I love you') <_sre.SRE_Match object at 0x02CD5A30> >>> #消除点号通配符的影响用\ >>> re.search(r'\.','I love you.') <_sre.SRE_Match object at 0x02CD59F8> >>> # \d 可以匹配任何数字 >>> re.search(r'\d','i love 5') <_sre.SRE_Match object at 0x02CD59C0> >>> re.search(r'\d\d\d','i love 567') <_sre.SRE_Match object at 0x02CD59F8> >>> >>> #匹配ip地址 >>> re.search(r'\d\d\d.\d\d\d.\d\d\d.\d\d\d','192.168.266.862') <_sre.SRE_Match object at 0x02CD5A30> \ >>> re.search(r'\d\d\d.\d\d\d.\d\d\d.\d\d\d','192.168.266.0') >>> #上句匹配不了 >>> >>> #[]来创建一个字符类,在字符类中匹配任何字符都算匹配 >>> >>> re.search(r'[aeiou]','i love you') <_sre.SRE_Match object at 0x02CD5A68> >>> #正则表达式默认开启大小写模式 >>> re.search(r'[aeiouAEIOU]','I love you') <_sre.SRE_Match object at 0x02CD5A30> >>> >>> #[]中 “-”表示范围 >>> re.search(r'[a-zA-Z]','I love you') <_sre.SRE_Match object at 0x02CD5A68> >>> re.search(r'[0-9]','I love you 123') <_sre.SRE_Match object at 0x02CD5A30> >>> >>> #限制重复匹配的次数 >>> 用{}来搞定 SyntaxError: invalid syntax >>> re.search(r'ab{3}c','abbbc') <_sre.SRE_Match object at 0x02CD59F8> >>> re.search(r'ab{3}c','abbbbbbc') >>> #设定匹配的范围 >>> re.search(r'ab{3,10}c','abbbbbbc') <_sre.SRE_Match object at 0x02CD5A30> >>> >>> #数字只有1-9.不能像下面匹配 >>> re.search(r'[0-255]','182') <_sre.SRE_Match object at 0x02CD5A68> >>> #上面的匹配是0-2,5,5,和182中的2有匹配 >>> >>> re.sea Traceback (most recent call last): File "<pyshell#43>", line 1, in <module> re.sea AttributeError: 'module' object has no attribute 'sea' >>> re.search(r'[0-2][0-5][0-5]','182') >>> #上面匹配不了 >>> >>> #真正的匹配方法 >>> re.search(r'[01]\d\d|2[0-4]\d|25[0-5]','182') <_sre.SRE_Match object at 0x02CD5A30> >>> >>> #匹配ip地址, >>> re.search(r'([01]\d\d|2[0-4]\d|25[0-5])\.{3}([01]\d\d|2[0-4]\d|25[0-5])','192.168.0.1') >>> #上面虽然匹配失败,但是思想是对的,小括号是分组的作用。 >>> #上面再添加一个小括号就对了 >>> re.search(r'(([01]\d\d|2[0-4]\d|25[0-5])\.){3}([01]\d\d|2[0-4]\d|25[0-5])','192.168.0.1') >>> #依然不对,数字1不可能刻意写成001 >>> #再修改 >>> re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])','192.168.0.1') <_sre.SRE_Match object at 0x02CCA610> >>>