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>&nbsp; &nbsp; 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,&nbsp;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())

 

posted @ 2020-06-12 23:19  udbful  阅读(236)  评论(0编辑  收藏  举报