正则表达式应用示例(一)

正则表达式应用示例(一)

请使用正则表达式方法提取以下文字中的姓名、性别、年龄、账号、密码、作品和电话号码。要求只提取项目内容,电话号码使用状态不提取。

" 姓名:海 风,性别:男,年龄:52,账号:12345,密码:6789,作品:<<'双随机’管理系统>>电\

\

\

话:133****5117(常用)"

text = "   姓名:海    风,性别:,年龄:52,账号:12345,密码:6789,作品:<<'双随机'管理系统>>电\
\
\
话:133****5117(常用)"

# 【方式一】
# 匹配全部字符,包括空格,但不包括回车符号
al = re.findall('.',text);#print(al)
'''显示结果:
[' ', ' ', ' ', '姓', '名', ':', '海', ' ', ' ', ' ', ' ', '风', ',', '性', '别', ':', 
'男', ',', '年', '龄', ':', '5', '1', ',', '账', '号', ':', '1', '2', '3', '4', '5', 
',', '密', '码', ':', '6', '7', '8', '9', ',', '作', '品', ':', '<', '<', "'", '双', 
'随', '机', "'", '管', '理', '系', '统', '>', '>', '电', '话', ':', '1', '3', '3', '*', 
'*', '*', '*', '5', '1', '1', '7', '(', '常', '用', ')']
'''
# 提取姓名(显示结果:海风)
name =[nn[3:-3] for nn in re.findall("姓名:.*性别",text)][0].replace(' ','');print(name)

# 提取性别(显示结果:男)
sx =[sxn[3:-3] for sxn in re.findall("性别:.*年龄",text)][0];print(sx)

# 提取年龄(显示结果:51)
age =[en[3:-3] for en in re.findall("年龄:.*账号",text)][0];print(age)

# 提取账号(显示结果:12345)
act =[actn[3:-3] for actn in re.findall("账号:.*密码",text)][0];print(act)

# 提取密码(显示结果:密码:6789)
pw = [pn[3:] for pn in re.findall(("密码:\d+"),text)][0];print(pw)

# 提取作品名称(显示结果:<<'双随机'管理系统>>)
wsn =[wn[3:] for wn in re.findall("作品:.+>",text)][0];print(wsn)

# 提取电话号码(显示结果:133****5117)
tel = [tn[3:] for tn in re.findall("电话:.*\d",text)][0];print(tel)

# 【方式二】
# 匹配全部字符,包括空格,但不包括回车符号
alc = re.compile('.');al = alc.findall(text);#print(al)
'''显示结果:
[' ', ' ', ' ', '姓', '名', ':', '海', ' ', ' ', ' ', ' ', '风', ',', '性', '别', ':', 
'男', ',', '年', '龄', ':', '5', '1', ',', '账', '号', ':', '1', '2', '3', '4', '5', 
',', '密', '码', ':', '6', '7', '8', '9', ',', '作', '品', ':', '<', '<', "'", '双', 
'随', '机', "'", '管', '理', '系', '统', '>', '>', '电', '话', ':', '1', '3', '3', '*', 
'*', '*', '*', '5', '1', '1', '7', '(', '常', '用', ')']
'''
# 提取姓名(显示结果:海风)
namec =re.compile("姓名:.*性别");name = [nn[3:-3] for nn in namec.findall(text)][0].replace(' ','');print(name)

# 提取性别(显示结果:男)
sxc = re.compile("性别:.*年龄");sx =[sxn[3:-3] for sxn in sxc.findall(text)][0];print(sx)

# 提取年龄(显示结果:51)
agec = re.compile("年龄:.*账号");age =[en[3:-3] for en in agec.findall(text)][0];print(age)

# 提取账号(显示结果:12345)
actc = re.compile("账号:.*密码");act =[actn[3:-3] for actn in actc.findall(text)][0];print(act)

# 提取密码(显示结果:密码:6789)
pwc = re.compile(("密码:\d+"));pw =[pn[3:] for pn in pwc.findall(text)][0];print(pw)

# 提取作品名称(显示结果:<<'双随机'管理系统>>)
wsnc = re.compile("作品:.+>");wsn =[wn[3:] for wn in wsnc.findall(text)][0];print(wsn)

# 提取电话号码(显示结果:133****5117)
telc = re.compile("电话:.*\d");tel =[tn[3:] for tn in telc.findall(text)][0];print(tel)

# 方法三
# 创建函数(性别|年龄|账号)
def extract_(reg):
	kk =[key[3:-3]for key in re.findall(reg,text)][0]
	return kk
print(extract_("姓名:.*性别").replace(' ',''));print(extract_("性别:.*年龄"));print(extract_("年龄:.*账号"))
# 创建函数(密码|作品|电话)
def extract_(reg):
	kk =[key[3:]for key in re.findall(reg,text)][0]
	return kk
print(extract_("密码:\d+"));print(extract_("作品:.+>"));print(extract_("电话:.*\d"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值