正则表达式re.findall、re.sub
import re
s = '通过几天python的学习,感觉python真是好'
re. findall( 'python' , s)
['python', 'python']
s1 = '此次新朗逸主要搭载了1.5L和1.5T发动机,别克英朗搭载了1.0T和1.3L的发动机'
re. findall( '1...' , s1)
re. findall( '1\...' , s1)
['1.5L', '1.5T', '1.0T', '1.3L']
几种字符的表示
s3 = ' 距离2019北京马拉松, \n今年报名人数,\t媒体公布的中签, 再创历史新低。\n'
print ( s3)
re. sub( '\s' , '' , s3)
距离2019北京马拉松,
今年报名人数, 媒体公布的中签, 再创历史新低。
'距离2019北京马拉松,今年报名人数,媒体公布的中签,再创历史新低。'
中括号[]特定字符匹配
import re
s4 = '用户联系方式:13612345566,用户编号为11011254321'
print ( re. findall( '1[356789]\d\d\d\d\d\d\d\d\d' , s4) )
re. findall( '1[356789]\d{9}' , s4)
['13612345566']
['13612345566']
s5 = '通过对比1.5L和1.5T数据在1.5年的行驶中,发现1.5T口碑比较好'
re. findall( '1.5[TL]' , s5)
['1.5L', '1.5T', '1.5T']
s5 = '通过对比1.5L和1.5T数据在1.5年的行驶中,发现1.5T口碑比较好'
re. findall( '1.5[A-Za-z]' , s5)
['1.5L', '1.5T', '1.5T']
圆括号抠出
s6 = 'id:1, name:jim, age:3, id:2, name:jonh, age:4'
print ( re. findall( '\d' , s6) )
print ( re. findall( 'age:\d' , s6) )
re. findall( 'age:(\d)' , s6)
['1', '3', '0', '2', '4']
['age:3', 'age:4']
['3', '4']
英文状态问号?
s6 = 'id:1, name:jim, age:30, id:2, name:jonh, age:4'
re. findall( 'age:(\d\d?)' , s6)
['30', '4']
英文状态加号+
prod = [ '婴儿袜' , '奶粉盒子' , '婴儿奶粉' , '好奶粉杯子' , '纸尿布' ]
res = [ ]
for i in prod:
res. extend( re. findall( '.*奶粉.*' , i) )
res
['奶粉盒子', '婴儿奶粉', '好奶粉杯子']
英文状态{}
.*?万能匹配
string1 = "{ymd:'2018-01-01',tianqi:'晴',aqiInfo:'轻度污染'},{ymd:'2018-01-02',tianqi:'阴~小雨',aqiInfo:'优'},{ymd:'2018-01-03',tianqi:'小雨~中雨',aqiInfo:'优'},{ymd:'2018-01-04',tianqi:'中雨~小雨',aqiInfo:'优'}"
re. findall( "tianqi:'(.*?)'" , string1)
['晴', '阴~小雨', '小雨~中雨', '中雨~小雨']
re.I不区分大小写
string2 = 'Together, we discovered that a free market only thrives when there are rules to ensure competition and fair play, Our celebration and enterprise'
print ( re. findall( '\w*[oO]\w*' , string2) )
re. findall( '\w*o\w*' , string2, flags = re. I)
['Together', 'discovered', 'only', 'to', 'competition', 'Our', 'celebration']
['Together', 'discovered', 'only', 'to', 'competition', 'Our', 'celebration']
string3 = '据悉, 这次发送的4台整齐(ITEB) 项目的设备,先后完成、真空、氮气、前进、吊耳、叠加是哑巴。'
print ( re. sub( '[,。、\s()a-zA-Z0-9]' , '' , string3) )
据悉这次发送的台整齐项目的设备先后完成真空氮气前进吊耳叠加是哑巴
分割split
string4 = '2室2庭 | 101.62平 | 低区/7层 | 朝南 \n 上海未来 - 浦东 - 晋阳 - 2005年建设'
split = re. split( '[\|\n-]' , string4)
print ( split)
split_strip = [ i. strip( ) for i in split]
print ( split_strip)
['2室2庭 ', ' 101.62平 ', ' 低区/7层 ', ' 朝南 ', ' 上海未来 ', ' 浦东 ', ' 晋阳 ', ' 2005年建设']
['2室2庭', '101.62平', '低区/7层', '朝南', '上海未来', '浦东', '晋阳', '2005年建设']