正则表达式

2017-09-20  本文已影响0人  转身为墙

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它‘匹配了’,否则,该字符串就是不合法的。

re模块
import re
result1 = re.match('\d+','edvr4556t5gtbyh675454') 
print result1
if result1:
   print  result1.group()
else:
   print 'nothing'
result2 = re.search('\d+','edvr4556t5gtbyh675454') 
print result2
if result2:
   print result2.group()
else:
   print 'nothing'
#打印结果
None
nothing
<_sre.SRE_Match object at 0x01EF2918>
4556
#在字符串中用正则表达式\d+ 匹配数字,如果为真,返回匹配结果,否则返回nothing
import re
result3 = re.findall('\d+','ed111vr4556t5g333tbyh675454') 
print result3
#打印结果
['111', '4556', '5', '333', '675454']
import re
com = re.compile('\d+')  #编译
result1 = com.findall('123wed44444kll3333')
print result1
result2 = com.match('4343ds9090fg321').group()
print result2
result3 = com.search('asd8888frs2222').group()
print result3
#打印结果:
['123', '44444', '3333']
4343
8888
import re
result2 = re.search('(\d+)asdfa(\d+)','as123asdfa335633sdeasdfdf')
print result2.group()
print result2.groups()   #groups只打印圆括号里的内容
#打印结果
123asdfa335633
('123', '335633')
import re
ip = '12.34.43.dsfa.345rs.354s~234sd389d+34f192.168.32.43_w342d~@#9436'
result1 = re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',ip)
print result1
result2 = re.findall('(?:\d{1,3}\.){3}\d{1,3}',ip)
print result2
#打印结果
['192.168.32.43']
['192.168.32.43']
上一篇下一篇

猜你喜欢

热点阅读