正则-元字符 注意正则表达式中间不要随意加空格

<_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默认是贪婪模式,即满足条件的会尽可能多的找出来,去掉贪婪模式的方式是加?,这样在第一个符合情况的字符串就会返回,而不是返回最后一个找到的

 

posted @ 2017-04-22 11:41  道高一尺  阅读(1122)  评论(0编辑  收藏  举报