码迷,mamicode.com
首页 > 编程语言 > 详细

python re示例

时间:2018-05-26 01:12:13      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:AC   compile   att   ali   inxi   计算器   /usr   ack   lex   

#!/usr/bin/env python 
# encoding: utf-8
# Date: 2018/5/25
import re

s = ‘124311200111155214‘
ss = re.search(‘(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})‘,s).groups()
print(ss) # (‘124‘, ‘311‘, ‘2001‘)
ss1 = re.search(‘(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})‘,s)
print(ss1.groupdict()) # {‘province‘: ‘124‘, ‘city‘: ‘311‘, ‘born_year‘: ‘2001‘}

# split
s_sp = ‘alex22jack23rain31jinxin50‘
s_sp1 = re.split(‘\d‘,s_sp)
print(s_sp1) # [‘alex‘, ‘‘, ‘jack‘, ‘‘, ‘rain‘, ‘‘, ‘jinxin‘, ‘‘, ‘‘]

s_sp2 = re.split(‘\d+‘,s_sp)
print(s_sp2) #[‘alex‘, ‘jack‘, ‘rain‘, ‘jinxin‘, ‘‘]
s_sp3 = re.findall(‘\d+‘,s_sp)
print(s_sp3) #[‘22‘, ‘23‘, ‘31‘, ‘50‘]

s3 = ‘alex22jack23rain31jinxin50#mack-oldboy‘
s31 = re.split(‘\d+|#|-‘,s3)
print(s31) # [‘alex‘, ‘jack‘, ‘rain‘, ‘jinxin‘, ‘‘, ‘mack‘, ‘oldboy‘]

s4 = ‘alex22jack23rain31jinxin50|mack-oldboy‘
s41 = re.split(‘\d+|\||-‘,s4)
print(s41) # [‘alex‘, ‘jack‘, ‘rain‘, ‘jinxin‘, ‘‘, ‘mack‘, ‘oldboy‘]

s5 = ‘sss\\123‘
s51 = re.split(\\\\‘,s5)
print(s51) # [‘sss‘, ‘123‘]

# sub 替换
s6 = ‘alex22jack23rain31jinxin50|mack-oldboy‘
s61 = re.sub(‘\d+‘, ‘_‘, s6)
print(s61) # alex_jack_rain_jinxin_|mack-oldboy
s62 = re.sub(‘\d+‘, ‘_‘, s6, count=2)
print(s62) # alex_jack_rain31jinxin50|mack-oldboy

s7 = ‘9-2*5/3+7/3*99/4*2998+10*568/14‘
s71 = re.split(‘[-\*/+]‘, s7)
print(s71) # [‘9‘, ‘2‘, ‘5‘, ‘3‘, ‘7‘, ‘3‘, ‘99‘, ‘4‘, ‘2998‘, ‘10‘, ‘568‘, ‘14‘]

s72 = re.split(‘[-\*/+]‘, s7, maxsplit=2)
print(s72) # [‘9‘, ‘2‘, ‘5/3+7/3*99/4*2998+10*568/14‘]

# fullmatch compile compile为了提高效率
pattern = re.compile(‘\w+@\w+\.(com|cn|edu)‘)
print(pattern.fullmatch(‘alex@oldboyedu.cn‘)) # <_sre.SRE_Match object; span=(0, 17), match=‘alex@oldboyedu.cn‘>

# 计算器
s8 = ‘1-2*((60-30+(-40/5)*(9-2*5/3 + 7/3*99/4*2998 + 10*568/14)) - (-4*3)/(16-3*2))‘

s81 = re.search(‘\([^()]+\)‘, s8)
print(s81) # <_sre.SRE_Match object; span=(12, 19), match=‘(-40/5)‘>
s82 = re.findall(‘\([^()]+\)‘, s8)
print(s82) # [‘(-40/5)‘, ‘(9-2*5/3 + 7/3*99/4*2998 + 10*568/14)‘, ‘(-4*3)‘, ‘(16-3*2)‘]




python re示例

标签:AC   compile   att   ali   inxi   计算器   /usr   ack   lex   

原文地址:https://www.cnblogs.com/fmgao-technology/p/9091243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!