赞
踩
正则表达式(Regular Expression,简称:Regex)是一种文本模式的表示方法,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式常用于字符串的搜索、替换以及复杂的字符串模式匹配操作。
正则表达式由普通字符(例如字符 a
到 z
)和特殊字符(称为元字符)组成,它在不同的编程语言和工具中有着广泛的应用,例如 Python、JavaScript、Perl、Java 等语言,以及文本编辑器、搜索工具等软件中。
正则表达式的能力非常强大,可以用于各种复杂的字符串处理任务,如数据验证、数据提取、数据替换等。然而,编写复杂的正则表达式可能比较困难,需要一定的学习和实践。
一个文本文件里面存储了一些市场职位信息,格式如下所示:
Python3 高级开发工程师 上海互教教育科技有限公司上海-浦东新区2万/月02-18满员
测试开发工程师(C++/python) 上海墨鹍数码科技有限公司上海-浦东新区2.5万/每月02-18未满员
Python3 开发工程师 上海德拓信息技术股份有限公司上海-徐汇区1.3万/每月02-18剩余11人
测试开发工程师(Python) 赫里普(上海)信息科技有限公司上海-浦东新区1.1万/每月02-18剩余5人
Python高级开发工程师 上海行动教育科技股份有限公司上海-闵行区2.8万/月02-18剩余255人
python开发工程师 上海优似腾软件开发有限公司上海-浦东新区2.5万/每月02-18满员
现在,我们需要写一个程序,从这些文本里面抓取所有职位的薪资。
这是典型的字符串处理。分析这里面的规律,可以发现,薪资的数字后面都有关键字 万/月
或者 万/每月
。根据我们学过的知识,我们不难写出下面的代码:
# 打开指定文本,获取文本中的内容 with open('Python/正则表达式/code/exp1.txt', 'r') as f: lines = f.readlines() # 遍历每一行 for line in lines: # 查找'万/月'在字符串中的索引 pos2 = line.find('万/月') # 如果没有找到则返回-1 if pos2 == -1: # 说明 '万/月' 没有找到 pos2 = line.find('万/每月') # 查找 '万/每月' 在字符串中的索引 if pos2 == -1: # 说明 '万/每月' 也没有找到 continue # 找到了 '万/月' 或者 '万/每月' idx = pos2 - 1 # 数字的末尾索引 # 往前找 while line[idx].isdigit() or line[idx] == '.': # 如果前面的是数字或者小数点 idx -= 1 # 继续往前找 # 现在我们可以确定数字的索引范围了 pos1 = idx + 1 print(line[pos1: pos2], '万/每月')
运行结果:
2 万/每月
2.5 万/每月
1.3 万/每月
1.1 万/每月
2.8 万/每月
2.5 万/每月
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/800203
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。