1、如何提取工资名称,以及工资金额? 如:上海正中能源科技有限公司 2.50万
content = '''
大数据项目经理(上海正中能源科技有限公司) 上海正中能源科技有限公司上海 2.50万/每月
大数据项目经理(上海众调信息科技有限公司) 上海众调信息科技有限公司上海 1.8万/月
大数据项目经理(03)(复深蓝软件) 上海复深蓝软件股份有限公司上海0.65万/每月
393197-大数据精算团队主管(平安医疗健康管理股份有限公司) 平安医疗健康管理股份有限公司上海 3.3333万/月
医疗大数据销售 神州医疗投资有限公司东城区 8000万/每月
393185-大数据运维工程师(平安医疗健康管理股份有限公司) 平安医疗健康管理股份有限公司上海 28000万/每月 '''
import re
for one in re.findall(r'([上海|平安].*?公司).*?([\d.]+万)/每{0,1}月', content):
print(one[0]+" "+one[1])
2、如何提取出 所有的姓名和成绩,打印出来 。例如“张三 89”
并找出最高分同学的姓名以及成绩
content = '''
张三,成绩89,手机号码15978965201
李四,成绩78,手机号码17158258889
王二,成绩99,手机号码16893477422 '''
score = []
for one in re.findall(r'(.+?),成绩(\d{2})', content):
print(one[0]+" "+one[1])
score.append(one)
score = sorted(score,key=lambda x:x[1])
print("最高分:{},成绩:{}".format(score[-1][0],score[-1][1]))
3、当当网站上python相关书籍信息,需要替换span rel的编号,将原来编号倒序,并去除掉第一位数字,如何实现?
例如:8589934632 236439985
content = '''<span rel="8589934632"><a href="/?key=python&act=input&att=s8589934592%3A8589934632#J_tab" title="人民邮电出版社"><em></em>人民邮电出版社</a></span>
<span rel="8589934622"><a href="/?key=python&act=input&att=s8589934592%3A8589934622#J_tab" title="机械工业出版社"><em></em>机械工业出版社</a></span>
<span rel="8589934624"><a href="/?key=python&act=input&att=s8589934592%3A8589934624#J_tab" title="清华大学出版社"><em></em>清华大学出版社</a></span>
<span rel="8589934617"><a href="/?key=python&act=input&att=s8589934592%3A8589934617#J_tab" title="电子工业出版社"><em></em>电子工业出版社</a></span>
<span rel="8589934697"><a href="/?key=python&act=input&att=s8589934592%3A8589934697#J_tab" title="中国水利水电出版社"><em></em>中国水利水电出版社</a></span>
<span rel="8589934618"><a href="/?key=python&act=input&att=s8589934592%3A8589934618#J_tab" title="高等教育出版社"><em></em>高等教育出版社</a></span>
<span rel="8589934854"><a href="/?key=python&act=input&att=s8589934592%3A8589934854#J_tab" title="东南大学出版社"><em></em>东南大学出版社</a></span>
'''
a = re.findall(r'rel="(\d{10})">', content)
b = []
for i in a:
b.append(i[::-1][:-1])
c = [i for i in content.split("\n") if i != '']
for i in range(len(c)):
d = re.sub(r'\"8589\d*\"',b[i], c[i])
print(d)
4、病例解析
张三,1965-3-12,是脑卒中病, 手机号码15978965201
李四,1958-5-4,是高血脂病,手机号码17158258889
苏齐,1944-5-2,是肺结核病,手机号码16893477422
王五,1996-2-1,是肾炎,手机号码15895552422
孙六,1993-1-1,是肝炎,手机号码1936855422
黄黄,1988-11-23,
要求:
步骤1找出所有的年月日,替换成1965年3月12日
content = '''
张三,1965年3月12日,是脑卒中病, 手机号码15978965201
李四,1965年3月12日,是高血脂病,手机号码17158258889
苏齐,1965年3月12日,是肺结核病,手机号码16893477422
王五,1965年3月12日,是肾炎,手机号码15895552422
孙六,1965年3月12日,是肝炎,手机号码1936855422
黄黄,1965年3月12日,'''
content = re.sub(r'\d{4}-\d{1,2}-\d{1,2}','1965年3月12日', content)
print(content)
步骤2,提取所有行,格式为:姓名出生年月电话号码
格式: 姓名:张三,出生年月1965年3月12日,15978965201
info = []
for one in re.findall(r'(.+?),(\d{4}年\d{1,2}月\d{1,2}日),是.*手机号码{0,1}(\d{1,11})|(.+?),(\d{4}年\d{1,2}月\d{1,2}日)', content):
info.append([i for i in one if i !=''])
for i in range(len(info)):
if i < len(info)-1:
print("姓名:{},出生年月{},{}".format(info[i][0],info[i][1],info[i][2]))
else:
print("姓名:{},出生年月{}".format(info[i][0],info[i][1]))
5、使用正则表达式,找出一下密码所有符合规则的密码:
1),长度为8-15
2),以字母开头
3),密码可以包括数字、字母、下划线、井号、感叹号和星号
content = '''
dfajipqjgif56974*/524351
145g84546sa!$#
35784443198
89/*12!
POIIr/*3+
dafafd$#$#$#
jfasd89
###-=-09)
Ilovechina!666
Sumhs2345/2342%
hhihihi!@%&^
Z/*#! '''
pattern = r'^[a-zA-Z][\w!#*]{8,15}'
result = re.findall(pattern, content, re.M)
info= content.split("\n")
for i in result:
if i in info:
print(i)