1. 基本知识

函数说明
\u0041-\u005a大写字母unicode范围
\u0061-\u007a小写字母unicode范围
\u0041-\u007a英文字母unicode范围
\u0030-\u0039数字unicode范围
\u4e00-\u9fa5汉字unicode范围

import re
string = "12345 abcde 武汉加油! aBCD ??//"
print(string)
# 提取数字
print(re.sub(u"([^\u0030-\u0039])","",string))
# 提取大写字母
print(re.sub(u'([^\u0041-\u005a])','',string))
# 提取小写字母
print(re.sub(u'([^\u0061-\u007a])','',string))
# 提取英文字母
print(re.sub(u'([^\u0041-\u007a])','',string))
# 提取汉字
print(re.sub(u'([^\u4e00-\u9fa5])','',string))
# 提取特殊符号
print(re.sub(u'([^\!\?])','',string))
# 提取数字+英文+汉字+特殊符号
print(re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u007a\?])","",string))

2. 练习

import pandas as pd
import re
# target string
df = ['豪沃Z3257N47E1自卸汽车','福田B5313VNJJ-S2仓栅式运输车','华威驰乐J453SMFB-12半挂牵引车']
# result dataframe
df1 = pd.DataFrame(columns = ['车辆名称','品牌','车型代码','车辆类型'],index = range(0,len(df)))
for i in range(0,len(df)):
    df1.iloc[i,0] = df[i]
    #先提取数字+字母+特殊字符-
    df1.iloc[i,2] = re.sub(u"([^\u0041-\u007a\u0030-\u0039\-])","",df1.iloc[i,0])
    #再提取品牌
    df1.iloc[i,1] = df1.iloc[i,0].split(df1.iloc[i,2])[0]
    #再提取车辆类型
    df1.iloc[i,3] = df1.iloc[i,0].split(df1.iloc[i,2])[1]
df1

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐