Python正则匹配

背景:匹配某字段是否含有单个或多个特定关键词

一、单一匹配

样例:2476401041436860373259
需求:从上述样例中,截取0414开头的字符串,即从0414开始得到最后3259

str_pattern='0414'
m=[]
for i in range(data_set.shape[0]):
    start_point=data_set['old_order_id'][i].find(str_pattern)
    end_point=len(data_set['old_order_id'][i])
    m.append(data_set['old_order_id'][i][start_point:end_point])
    
# 截取后的字段重新赋值给原始的dataframe
data_set['new_orderId']=m
data_set.head()

二、多种匹配

样例:这是一个天朗气清的早餐,风和日丽,适合郊游
需求:匹配关键字,早/风和/郊游 or 天亮了/月亮

pattern_v1="早|风和|郊游"
pattern_v1 ="天亮了|月亮"

import re
# type分类
type =[]
for i in range(data_set.shape[0]):
    result_v1=re.findall(pattern_v1, data_set.shape['contents'][i])
    result_v2=re.findall(pattern_v1, data_set.shape['contents'][i])
    if len(result_v1)>0:
        risk_type.append(1)
    elif len(result_v2)>0:
        risk_type.append(2)
    else:
        risk_type.append(0)

# 将结果重新赋值给原始dataframe
data_set.shape['type']=type
data_set.shape.head(1)

知识点总结:

  1. python正则表达式:re模块
  2. find函数

你可能感兴趣的:(Python正则匹配)