标签:信息 contact abc 位置 number school 例子 company 指定
print(‘ab\nc‘)运行结果:abcprint(r‘ab\nc‘)运行结果:ab\nca = ‘as213df_*|‘b = ‘a_b a3b aEb a*b‘print(re.findall(‘\w‘, a))print(re.findall(‘\W‘, a))print(re.findall(‘a\wb‘, b))运行结果:[‘a‘, ‘s‘, ‘2‘, ‘1‘, ‘3‘, ‘d‘, ‘f‘, ‘_‘][‘*‘, ‘|‘][‘a_b‘, ‘a3b‘, ‘aEb‘]print(re.findall(‘\s‘, ‘a b\nc\td‘))print(re.findall(‘\S‘, ‘a b\nc\td‘))运行结果:[‘ ‘, ‘\n‘, ‘\t‘][‘a‘, ‘b‘, ‘c‘, ‘d‘]print(re.findall(‘\d‘,‘a123bcdef‘))print(re.findall(‘\D‘,‘a123bcdef‘))运行结果:[‘1‘, ‘2‘, ‘3‘][‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘]print(re.findall(‘\Ahe‘, ‘hello, world, 2017‘))print(re.findall(‘2017\Z‘, ‘hello, world, 2017\n2017‘))运行结果:[‘he‘][‘2017‘]print(re.findall(‘\n‘,‘a123\nbcdef‘))print(re.findall(‘\t‘,‘a123\tbc\td\tef‘))运行结果:[‘\n‘][‘\t‘, ‘\t‘, ‘\t‘]print(re.findall(‘h‘,‘hello egon hao123‘))print(re.findall(‘^h‘,‘hello egon hao123‘))print(re.findall(‘^h‘,‘ello egon hao123‘))运行结果:[‘h‘, ‘h‘][‘h‘][]print(re.findall(‘3‘,‘e3ll3o e3gon hao123‘))print(re.findall(‘3$‘,‘e3ll3o e3gon hao123‘))print(re.findall(‘3$‘,‘e3ll3o e3gon hao123asdf‘))运行结果:[‘3‘, ‘3‘, ‘3‘, ‘3‘][‘3‘][]print(re.findall(‘a[1,2\n]c‘,‘a2c a,c abc a1c a*c a|c abd aed a\nc‘))print(re.findall(‘a[0-9]c‘,‘a2c a,c abc a1c a*c a|c abd aed a\nc‘))print(re.findall(‘a[0-9a-zA-Z*-]c‘,‘a1c abc a*c a-c aEc‘))运行结果:[‘a2c‘, ‘a,c‘, ‘a1c‘, ‘a\nc‘][‘a2c‘, ‘a1c‘][‘a1c‘, ‘abc‘, ‘a*c‘, ‘a-c‘, ‘aEc‘]print(re.findall(‘a[^0-9]c‘,‘a1c abc a*c a-c aEc‘))运行结果:[‘abc‘, ‘a*c‘, ‘a-c‘, ‘aEc‘]print(re.findall(‘a.c‘,‘abc a1c a*c a|c abd aed ac‘))print(re.findall(‘a.c‘,‘abc a1c a*c a|c abd aed a\nc‘,re.S))运行结果:[‘abc‘, ‘a1c‘, ‘a*c‘, ‘a|c‘][‘abc‘, ‘a1c‘, ‘a*c‘, ‘a|c‘, ‘a\nc‘]print(re.findall(‘ab*‘,‘a‘))print(re.findall(‘ab*‘,‘abbbbbb‘))print(re.findall(‘ab*‘,‘bbbbbb‘))运行结果:[‘a‘][‘abbbbbb‘][]print(re.findall(‘ab+‘,‘a‘))print(re.findall(‘ab+‘,‘abbbbbb‘))print(re.findall(‘ab+‘,‘bbbbbb‘))print(re.findall(‘ab[123]+‘,‘ab11111111 ab2 ab3 abc1 ab11112 ab12222 ab1233333‘)) #ab1+,ab2+,ab3+,ab[123][123][123]运行结果:[][‘abbbbbb‘][][‘ab11111111‘, ‘ab2‘, ‘ab3‘, ‘ab11112‘, ‘ab12222‘, ‘ab1233333‘]print(re.findall(‘ab?‘,‘a‘)) #[‘a‘]print(re.findall(‘ab?‘,‘abbb‘)) #[‘ab‘]print(re.findall(‘ab?c‘,‘ac abc aec a1c‘))运行结果:[‘a‘][‘ab‘][‘ac‘, ‘abc‘]print(re.findall(‘ab{3}‘,‘ab1 abbbbbbbb2 abbbbb3 ab4 ab122‘)) #出现3次print(re.findall(‘ab{3,4}‘,‘ab1 abbb123 abbbb123 abbbbbt‘)) #出现3次到4次print(re.findall(‘ab{3,}‘,‘ab1 abbb123 abbbb123 abbbbbt‘)) #出现3次到无穷次print(re.findall(‘ab{0,}‘,‘a123123123 ab1 abbb123 abbbb123 abbbbbt‘)) #出现0次到无穷次,类似*print(re.findall(‘ab{1,}‘,‘a123123123 ab1 abbb123 abbbb123 abbbbbt‘)) #出现1次到无穷次,类似+运行结果:[‘abbb‘, ‘abbb‘][‘abbb‘, ‘abbbb‘, ‘abbbb‘][‘abbb‘, ‘abbbb‘, ‘abbbbb‘][‘a‘, ‘ab‘, ‘abbb‘, ‘abbbb‘, ‘abbbbb‘][‘ab‘, ‘abbb‘, ‘abbbb‘, ‘abbbbb‘]print(re.findall(‘ab+‘,‘ababab123‘))print(re.findall(‘(ab)+123‘,‘ababab123‘)) #[‘ab‘],匹配到末尾的ab123中的ab,不太明白print(re.findall(‘(?:ab)+123‘,‘ababab123‘)) #findall的结果不是匹配的全部内容,而是组内的内容,?:可以让结果为匹配的全部内容运行结果:[‘ab‘, ‘ab‘, ‘ab‘][‘ab‘][‘ababab123‘]print(re.findall(‘compan(y|ies)‘, ‘Too many companies have gone bankrupt, and the next one is my company‘))print(re.findall(‘compan(?:y|ies)‘, ‘Too many companies have gone bankrupt, and the next one is my company‘))运行结果:[‘ies‘, ‘y‘][‘companies‘, ‘company‘]print(re.findall(‘a.*c‘,‘ac abc aec a1c‘)) #开头是a,最后是c 运行结果:[‘ac abc aec a1c‘] #一个值print(re.findall(‘a.*?c‘,‘ac abc aec a1c‘))print(re.findall(‘a.*?c‘,‘ac abc a111111111c a\nc a1c‘,re.S))运行结果:[‘ac‘, ‘abc‘, ‘aec‘, ‘a1c‘] #列表多个值[‘ac‘, ‘abc‘, ‘a111111111c‘, ‘a\nc‘, ‘a1c‘] #列表多个值正则在线调试工具:tool.oschina.net/regex/
content=‘Hello 123 456 World_This is a Regex Demo‘res=re.match(‘^Hello\s(\d+)\s(\d+)\s.*Demo‘,content)print(res.group()) #取所有匹配的内容print(res.group(1)) #取匹配的第一个括号内的内容print(res.group(2)) #去陪陪的第二个括号内的内容运行结果:Hello 123 456 World_This is a Regex Demo123456print(re.findall(‘a‘, ‘ababb ab abababbaab‘))运行结果:[‘a‘, ‘a‘, ‘a‘, ‘a‘, ‘a‘, ‘a‘, ‘a‘, ‘a‘]print(re.search(‘a‘, ‘ababb ab abababbaab‘))print(re.search(‘a‘, ‘ababb ab abababbaab‘).group())运行结果:<_sre.SRE_Match object; span=(0, 1), match=‘a‘>aprint(re.match(‘a‘, ‘ababb ab abababbaab‘).group())print(re.match(‘a‘, ‘babb ab abababbaab‘))print(re.search(‘^a‘, ‘ababb ab abababbaab‘).group())运行结果:aNoneaprint(re.split(‘[ab]‘, ‘abcd‘)) #先按‘a‘分割得到‘‘和‘bcd‘,再对‘‘和‘bcd‘分别按‘b‘分运行结果: 运行结果:[‘‘, ‘‘, ‘cd‘]print(‘===>‘,re.sub(‘a‘,‘A‘,‘alex make love‘)) #不指定n,默认替换所有print(‘===>‘,re.sub(‘a‘,‘A‘,‘alex make love‘,1)) #n为1,表示匹配1次print(‘===>‘,re.sub(‘a‘,‘A‘,‘alex make love‘,2)) #n为2,表示匹配2次print(‘===>‘,re.sub(‘^(\w+)(.*?\s)(\w+)(.*?\s)(\w+)(.*?)$‘,r‘\5\2\3\4\1‘,‘alex make love‘))#\w+任意多个字母,\s任意1个空白字符,\5\2\3\4\1,5表示第5个()分组内容,4表示第4个分组内容,以此类推print(‘===>‘,re.subn(‘a‘,‘A‘,‘alex make love‘)) #统计总共替换的次数print(re.sub(‘^a‘,‘A‘,‘alex make love‘)) #匹配开头,替换为大写 print(re.sub(‘^(\w+)(\s)(\w+)(\s)(\w+)‘,r‘\5\2\3\4\1‘,‘alex make love‘))print(re.sub(‘^(\w+)(\s+)(\w+)(\s+)(\w+)‘,r‘\5‘,‘alex make love‘)) #\s+匹配多个空白字符print(re.sub(‘^(\w+)(\W+)(\w+)(\W+)(\w+)‘,r‘\5\2\3\4\1‘,‘alex " \ + = make ----/== love‘)) #\W+匹配多个非字母数字下划线运行结果:===> Alex mAke love===> Alex make love===> Alex mAke love===> love make alex===> (‘Alex mAke love‘, 2)Alex make lovelove make alexlovelove " \ + = make ----/== alexprint(re.findall("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>")) #[‘h1‘]print(re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>").group()) #<h1>hello</h1>print(re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>").groupdict()) #<h1>hello</h1>print(re.search(r"<(\w+)>\w+</(\w+)>","<h1>hello</h1>").group())print(re.search(r"<(\w+)>\w+</\1>","<h1>hello</h1>").group())运行结果:[‘h1‘]<h1>hello</h1>{‘tag_name‘: ‘h1‘}<h1>hello</h1><h1>hello</h1>print(re.findall(r‘-?\d+\.?\d*‘,"1-12*(60+(-40.35/5)-(-4*3))")) #找出所有数字[‘1‘, ‘-12‘, ‘60‘, ‘-40.35‘, ‘5‘, ‘-4‘, ‘3‘]#使用|,先匹配的先生效,|左边是匹配小数,而findall最终结果是查看分组,所有即使匹配成功小数也不会存入结果#而不是小数时,就去匹配(-?\d+),匹配到的自然就是,非小数的数,在此处即整数print(re.findall(r"-?\d+\.\d*|(-?\d+)","1-2*(60+(-40.35/5)-(-4*3))")) #找出所有整数[‘1‘, ‘-2‘, ‘60‘, ‘‘, ‘5‘, ‘-4‘, ‘3‘]运行结果:[‘1‘, ‘-12‘, ‘60‘, ‘-40.35‘, ‘5‘, ‘-4‘, ‘3‘][‘1‘, ‘-2‘, ‘60‘, ‘‘, ‘5‘, ‘-4‘, ‘3‘]phone_str = "hey my name is alex, and my phone number is 13651054607, please call me if you are pretty!"phone_str2 = "hey my name is alex, and my phone number is 18651054604, please call me if you are pretty!"m = re.search("(1)([358]\d{9})",phone_str2)if m: print(m.group())ip_addr = "inet 192.168.60.223 netmask 0xffffff00 broadcast 192.168.60.255"m = re.search("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", ip_addr)print(m.group())contactInfo = ‘Oldboy School, Beijing Changping Shahe: 010-8343245‘match = re.search(r‘(\w+), (\w+): (\S+)‘, contactInfo) #分组""">>> match.group(1) ‘Doe‘ >>> match.group(2) ‘John‘ >>> match.group(3) ‘555-1212‘"""match = re.search(r‘(?P<last>\w+), (?P<first>\w+): (?P<phone>\S+)‘, contactInfo)""" >>> match.group(‘last‘) ‘Doe‘ >>> match.group(‘first‘) ‘John‘ >>> match.group(‘phone‘) ‘555-1212‘"""email = "alex.li@126.com http://www.oldboyedu.com"m = re.search(r"[0-9.a-z]{0,26}@[0-9.a-z]{0,20}.[0-9a-z]{0,8}", email)print(m.group())标签:信息 contact abc 位置 number school 例子 company 指定
原文地址:http://www.cnblogs.com/xiaofeiweb/p/6973816.html