19 正则表达式小案例
一、常用案例
1 """正则表达式小案例""" 2 3 import re 4 5 # 1、验证手机号码 6 text = "13979391000" 7 ret = re.match('1[34578]\d{9}', text) 8 print(ret.group())
# 2、验证邮箱 text = "332681333@126.com" ret = re.match('\w+@[a-z0-9]+\.[a-z]+',text) print(ret.group())
# 3、验证URL text = "https://www.baidu.com" ret = re.match('(http|https|ftp)://[^\s]+', text) print(ret.group())
# 4、验证身份证 text = '36232619980225245X' ret = re.match('\d{17}[\dxX]', text) print(ret.group())
# 5、^(脱字号)有两个意思:1表示以什么开头,2一般在[]中表示取反 text = "hello" ret = re.search('^he', text) print(ret.group())
# 6、$:表示以什么结束 text = 'xXx@126.com' ret = re.match('\w+@126.com$', text) print(ret.group())
# 7、匹配0-100之间的数字 text = '1' ret = re.match('[1-9]\d?$|100$', text) print(ret.group())
二、常用函数举例:
#8、findall函数 text = "apple is price $9.9, orangel is price $10" ret = re.findall('\$[\d.]+', text) print(ret)
# 9、sub函数 替换函数 text = "apple is price $9.9, orangel is price $10" ret = re.sub('\$[\d.]+', '0.0', text) # apple is price 0.0, orangel is price 0.0 print(ret)
# 10、sub函数替换转删除 html = """ <div class="job-detail"> <p>有关 AfterShip</p> <p><br></p> <p>2012 年成立于香港,公司自2014年起已实现持续盈利,且每年 100% 增长,公司目前暂时不需要融资。业务遍布全球,与全球 600 多家物流公司达成合作,涉及 30 多种主流语言业务体系。客户有 Amazon, Wish, eBay, Paypal, Groupon, Etsy,及各大小电商超过 100,000 家。</p> <p><br></p> <p>if 'coding' in your_passions and any(stack in ['Python', 'Node.js', 'Kubernetes', 'Serverless'] for stack in your_stacks):</p> <p> print('Join AfterShip')</p> <p><br></p> <p>岗位职责</p> <p><br></p> <p>1、负责集成各种维度的数据源,使用各种数据获取技巧,转换、分析、调度、存储数据,为公司业务提供正确稳定的数据;</p> <p>2、负责建设高可靠、高并发的分布式系统;</p> <p>3、负责提升系统的稳定性,持续迭代更新,保证系统质量和交付及时性;</p> <p>4、负责编写相关的技术文档和单元测试,对产品质量负责。</p> <p><br></p> <p>岗位要求</p> <p><br></p> <p>1、统招本科及以上学历,具备英语读写能力;</p> <p>2、熟悉 Git/GitHub,通信协议 TCP/HTTP 及 RESTful 标准;</p> <p>3、五年及以上 Python 开发工作经验,有 Scrapy 等使用经验;</p> <p>4、有 MySQL, Redis 或 MongoDB 等相关数据库使用经验;</p> <p>5、有数据意识,有产品数据方面相关经验。</p> <p><br></p> <p><br></p> <p>加分项</p> <p><br></p> <p>1、有 CI/CD使用经验 ;</p> <p>2、有使用 Docker、Kubernetes、AWS 或 GCP 等经验;</p> <p>3、熟悉 Tornado、Django 或 Flask ;</p> <p>4、有写 Blog 的习惯,活跃于技术社区,参与开源项目等;</p> <p>5、有代码洁癖,对代码精益求精,对技术有极客热情;</p> <p>6、有软件著作权申请,有专利发明申请。</p> <p><br></p> <p>为什么加入我们</p> <p><br></p> <p>1、极客氛围: 拥抱开源技术,实践敏捷开发;</p> <p>2、新技术: Kubernetes, Serverless, TensorFlow, Microservice;</p> <p>3、特色福利: 每天下午茶,学习成长基金, 提供 MacBook Pro;</p> <p>4、多元文化: 团队来自全球十几个国家;</p> <p>5、行业头部企业: 海外驰名企业,细分领域领跑者;;</p> <p>6、朝阳行业: B2B 企业级系统,国际性 SaaS 平台。</p> </div> """ ret = re.sub('<.+?>', '', html) print(ret)
# 11、split函数(分割) text = "hello world&ni hao" ret = re.split(' |&', text) # ['hello', 'world', 'ni', 'hao'] print(ret)
# 12、compile函数 #方法一: text = "the number is 20.50" r = re.compile(r'\d+.*\d*') ret = re.search(r, text) print(ret.group())
# 13、compile函数
# 方法二:多行注释写法
text = "the number is 20.50"
r = re.compile(r"""
\d+ # 小数点前
.* # .
\d* # 小数点后
""", flags=re.VERBOSE)
ret = re.search(r, text)
print(ret.group())