正则-元字符 注意正则表达式中间不要随意加空格
<_sre.SRE_Match object; span=(0, 11), match='192.168.1.1'> >>> re.search(r'Fish(C|D)','FishC') <_sre.SRE_Match object; span=(0, 5), match='FishC'> >>> re.search(r'Fish(C|D)','FishD')# | 相当于逻辑或
>>> re.search(r'^FishC','FishC.com') <_sre.SRE_Match object; span=(0, 5), match='FishC'>#脱字符^匹配字符串的开始位置
>>> re.search(r'FishC$','FishC.com') >>> re.search(r'FishC$','I love FishC') <_sre.SRE_Match object; span=(7, 12), match='FishC'># $匹配输入字符串的结束位置
>>> re.search(r'(FishC)\1','FishCFishC') <_sre.SRE_Match object; span=(0, 10), match='FishCFishC'> >>> (FishC)\1 ==FishCFishC #反斜杠加1-99内的数字代表前面字符串重复次数
>>> re.search(r'[.]','FishC.com') <_sre.SRE_Match object; span=(5, 6), match='.'> >>> re.findall(r'[a-z]','I love FishC.com') ['l', 'o', 'v', 'e', 'i', 's', 'h', 'c', 'o', 'm'] #中括号表示字符类,匹配其中包含的任意字符 >>> re.findall(r'[^FishC]','I love FishC.com') ['I', ' ', 'l', 'o', 'v', 'e', ' ', '.', 'c', 'o', 'm']#脱字符放在中括号第一个表示取反的意思,如果出现在其他位置则作为普通字符匹配,小横杠也是一样的,放在中间表示范围,放在其他位置只表示普通字符
>>> re.search(r'FishC{3,5}','FishCCCC') <_sre.SRE_Match object; span=(0, 8), match='FishCCCC'>#{m,n}表示匹配m到n次
<_sre.SRE_Match object; span=(0, 8), match='FishCCCC'> >>> re.search(r'FishC*','Fish') <_sre.SRE_Match object; span=(0, 4), match='Fish'> >>> re.search(r'FishC*','fishCCC') >>> re.search(r'FishC*','FishCCC') <_sre.SRE_Match object; span=(0, 7), match='FishCCC'># *表示前面的子表达式,注意是子表达式重复0次或者多次 + 表示1次或多次,?表示0次或者1次
<_sre.SRE_Match object; span=(0, 45), match='<html><title> I love FishC.com</title></html>'> >>> re.search(r'<.+?>',s) <_sre.SRE_Match object; span=(0, 6), match='<html>'>#贪婪模式,python默认是贪婪模式,即满足条件的会尽可能多的找出来,去掉贪婪模式的方式是加?,这样在第一个符合情况的字符串就会返回,而不是返回最后一个找到的