Python笔记26----正则表达式匹配

1、语法:

 

2、题目1:数据类型:

如果要选择 time 为2014-12-18那天的数据:采用正则化来处理

  代码:

 
import re
regex = re.compile(r'^2014-12-18+ /d+$')
def datefun(data):
    if re.match(regex,data['time']):
        date,time = data['time'].split(' ')
        return date
    else:
        return None

data['time'] = data.apply(datefun,axis = 1)
data = data[(data['time'] == '2014-12-18')]

 3、合法字母或数字,只要是大小写字母和数字就合法

import re
ss = 'abc13AD'
if re.search('^[0-9a-zA-Z]+$',ss):
    return True    
    

 4、pandas dataframe/series 正则表达式使用 str.match str.contains str.extract

(series)topquery_data['sentence'] 满足 开头为字母,然后为: ,接着是任何字符,接着还是:,最后为任何字符,如:

sport::程菲 体操

social:ssocial_车祸违驾:闯红灯 女司机 广州

health::野草 农民

选出之后按冒号切分,将最后的值付给原来的topquery_data['sentence'] ,即

程菲 体操

闯红灯 女司机 广州

野草 农民

取代原来的值

def split_function(string):
    return string.split(':')[-1]
pattern = '^[a-zA-Z]+:+[a-zA-Z:]+[]*+:[\s\S]*' topquery_data['sentence'].loc[topquery_data['sentence'].str.contains(pattern)] = topquery_data[topquery_data['sentence'].str.contains(pattern)]['sentence'].apply(split_function)

 

posted on 2018-09-24 17:43  吱吱了了  阅读(408)  评论(0编辑  收藏  举报

导航