标签:信息 contact abc 位置 number school 例子 company 指定
print(‘ab\nc‘)
运行结果:
ab
c
print(r‘ab\nc‘)
运行结果:
ab\nc
a = ‘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 Demo
123
456
print(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‘>
a
print(re.match(‘a‘, ‘ababb ab abababbaab‘).group())
print(re.match(‘a‘, ‘babb ab abababbaab‘))
print(re.search(‘^a‘, ‘ababb ab abababbaab‘).group())
运行结果:
a
None
a
print(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 love
love make alex
love
love " \ + = make ----/== alex
print(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